• 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)

VPS Starter Arubacloud
0 głosów
272 wizyt
pytanie zadane 21 maja 2019 w PHP przez hiper007 Stary wyjadacz (11,270 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 2019 przez hiper007 Stary wyjadacz (11,270 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 119 wizyt
0 głosów
1 odpowiedź 443 wizyt
pytanie zadane 30 kwietnia 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
–1 głos
1 odpowiedź 183 wizyt
pytanie zadane 10 stycznia 2020 w PHP przez niezalogowany

92,966 zapytań

141,930 odpowiedzi

321,163 komentarzy

62,299 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...