• 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
250 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 112 wizyt
0 głosów
1 odpowiedź 402 wizyt
pytanie zadane 30 kwietnia 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
–1 głos
1 odpowiedź 169 wizyt
pytanie zadane 10 stycznia 2020 w PHP przez niezalogowany

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...