• 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
31 wizyt
pytanie zadane 21 maja w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,860 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,860 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 62 wizyt
0 głosów
1 odpowiedź 44 wizyt
pytanie zadane 30 kwietnia w PHP, Symfony, Zend przez hiper007 Stary wyjadacz (10,860 p.)
0 głosów
1 odpowiedź 65 wizyt
pytanie zadane 19 stycznia w PHP, Symfony, Zend przez Raptor Mądrala (5,750 p.)
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

64,071 zapytań

110,467 odpowiedzi

231,380 komentarzy

47,836 pasjonatów

Przeglądających: 213
Pasjonatów: 10 Gości: 203

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.

...