• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony 4 - x-editable (Bootstrap 4)

0 głosów
54 wizyt
pytanie zadane 21 maja w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,880 p.)

Witam Wszytkich!

Mam misję... Potrzebuje zrobić możliwość edycji pola tabeli za pomocą pluginu x-editable (Bootstrap 4) problem w tym, że w programowaniu strukturalnym nie ma problemu ;), ale teraz chcę to przenieść do Frameworka Symfony 4:

<form>

		<table id="tab1" class="table table-bordered table-striped table-hover">
		<thead style="color:blue;">
		<tr><th colspan="9">
		<a class="btn btn-success" href="{{path('app_new')}}">Nowy</a></th></tr>
		<tr><th>ID</th><th>Imię</th><th>Nazwisko</th><th>Wiek</th><th>Data Urodz.</th><th>Opis</th><th>Pokaż</th><th>Edycja</th><th>Usuń</th></tr>
		</thead>
		<tbody id="myTable">
			{%for kierowca_one in kierowca%}
<tr class="text-success"><td>{{kierowca_one.id}}</td><td>{{kierowca_one.Imie|upper}}</td>
<td><span class="myElement" data-type="text" data-pk="{{kierowca_one.id}}">{{kierowca_one.Nazwisko}}</span></td>
<td>{{kierowca_one.Wiek}}</td>
<td>{{kierowca_one.Dataurodz|date("Y-m-d")}}</td><td>{{kierowca_one.Opis}}</td>
<td><a class="btn btn-warning" href="{{path('app_show',{id:kierowca_one.id})}}">Pokaż</a></td>
<td><a class="btn btn-primary" href="{{path('app_edit',{id:kierowca_one.id})}}">Edycja</a></td>
<td><a class="btn btn-danger" href="{{path('app_delete',{id:kierowca_one.id})}}">Usuń</a></td></tr>
			{%endfor%}
		</tboody>
		</table>

</form>

JS:

<script>	
$('.myElement').editable({ 
     url: "{{path('app_edit')}}",
	 type: "POST",
	 emptytext: 'Brak',
	 showbuttons: false,
     mode: 'inline',
     //dataType: 'json',
 	 validate: function(value){
   if($.trim(value) == '')
   {
    return 'This field is required';
   }
  }
    }); 
</script>

Controller:

/**
	* @Route("/edit", name="app_edit")
	* @IsGranted("ROLE_USER")
	*/
	public function editMethod(EntityManagerInterface $em, $id)
	{

			
	}

W jaki sposób musiałbym zapisać dane w Controllerze, żeby wykonał się update do bazy??

Entity: "Kierowcy", właściwość, która ma być zmieniona to "Nazwisko" 

1 odpowiedź

0 głosów
odpowiedź 21 maja przez hiper007 Stary wyjadacz (10,880 p.)

Zrobiłem modyfikacje:

	/**
	* @Route("/update/{id}", name="app_update")
	* @IsGranted("ROLE_USER")
	*/
	public function updateMethod(EntityManagerInterface $em, $id)
	{

			$repository=$em->getRepository(Kierowcy::class);
			$kierowca=$repository->find($id);

			$kierowca->setNazwisko('Kowalik');
			$em->persist($kierowca);
			$em->flush();

			return new Response('Kierowca został edytowany');

	}

Js:

<script>	
$('.myElement').editable({ 
	 type: "POST",
	 emptytext: 'Brak',
	 showbuttons: false,
     mode: 'inline',
     //dataType: 'json',
 	 validate: function(value){
   if($.trim(value) == '')
   {
    return 'This field is required';
   }
  }
    }); 
</script>

Twig:

<table id="tab1" class="table table-bordered table-striped table-hover">
		<thead style="color:blue;">
		<tr><th colspan="9">
		<a class="btn btn-success" href="{{path('app_new')}}">Nowy</a></th></tr>
		<tr><th>ID</th><th>Imię</th><th>Nazwisko</th><th>Wiek</th><th>Data Urodz.</th><th>Opis</th><th>Pokaż</th><th>Edycja</th><th>Usuń</th></tr>
		</thead>
		<tbody id="myTable">
			{%for kierowca_one in kierowca%}
				<tr class="text-success"><td>{{kierowca_one.id}}</td><td>{{kierowca_one.Imie|upper}}</td>
<td><span class="myElement" data-type="text" data-pk="{{kierowca_one.id}}" data-url="{{path('app_update',{id:kierowca_one.id})}}">{{kierowca_one.Nazwisko}}</span></td><td>{{kierowca_one.Wiek}}</td><td>{{kierowca_one.Dataurodz|date("Y-m-d")}}</td><td>{{kierowca_one.Opis}}</td><td>
		<a class="btn btn-warning" href="{{path('app_show',{id:kierowca_one.id})}}">Pokaż</a></td><td>
		<a class="btn btn-primary" href="{{path('app_edit',{id:kierowca_one.id})}}">Edycja</a></td><td>
		<a class="btn btn-danger" href="{{path('app_delete',{id:kierowca_one.id})}}">Usuń</a></td></tr>
			{%endfor%}
		</tboody>
		</table>

Działa,  ale chciałbym, żeby zmieniało się na value jaką wpiszę z inputa,a nie na sztywnie wpisaną zmienną: "$kierowca->setNazwisko('Kowalik');"

Co musiałbym zmienić, żeby updatować na wartość z inputa, a nie na zmienną sztywno przypisaną...

Podobne pytania

0 głosów
0 odpowiedzi 66 wizyt
0 głosów
1 odpowiedź 60 wizyt
pytanie zadane 30 kwietnia w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,880 p.)
0 głosów
1 odpowiedź 76 wizyt
pytanie zadane 19 stycznia w PHP, Symfony, Zend przez Raptor Mądrala (6,100 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

66,407 zapytań

113,168 odpowiedzi

239,568 komentarzy

46,673 pasjonatów

Przeglądających: 305
Pasjonatów: 5 Gości: 300

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...