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

Object Storage Arubacloud
0 głosów
255 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 114 wizyt
0 głosów
1 odpowiedź 407 wizyt
pytanie zadane 30 kwietnia 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
–1 głos
1 odpowiedź 174 wizyt
pytanie zadane 10 stycznia 2020 w PHP przez niezalogowany

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...