Jump to content
php.lv forumi

Laravel Collective Forms - kā apstrādāt datus?


Recommended Posts

Posted

Esmu izveidojis šādu dinamisku formu, kurā pielikt/noņemt attiecīgi Procesi/Materiāli.

id un name lauki attiecīgi id="processes[]" name="processes[]" un id="materials[]" name="materials[]"

Tālāk gribas saņemt Kontrolierī kaut kā pārskatāmi to visu...

Vai tiešām būs jāraksta jquery un jābrien cauri visai formai, lai samapotu materials => daudzums laukus? Varbūt kādi ieteikumi?

$request->all() izdod sekojošo:

Array ( 
  [name] => Heavy Metal 
  [processes] => Array ( [0] => [1] => 2 [2] => 3 [3] => ) 
  [quantity] => Array ( [0] => [1] => [2] => 1.00000 [3] => 3.00000 [4] => [5] => 1.00000 [6] => 50.00000 [7] => ) 
  [materials] => Array ( [0] => [1] => 2 [2] => 3 [3] => ) 
  [_method] => PUT )

image.thumb.png.40b079b713d377c71d07d2e146a3d85d.png

Posted

[+] Process un [+] Materiāls ir div bloks display: none, kuru es klonēju. Pārējos saražo blade template @foreach loopā. 

Attiecīgi neko vairāk par id="processes[]" name="processes[]" un id="materials[]" name="materials[]" izdomāt nevaru...

Atgriežos pie tā, ka iespējams jāizmanto vuejs, ko tik vienkārši pa 2h ierubīties nevarēšu...

Posted

Tev taču Zefīrs jau parādīja ideju. Lieto indexu. Kaut vai sāc ar to, ka ģenerējot formu no PHP lieto indexu. 
process[1][name], process[2][name], materials[1][name], materials[2][name] and so on.
Kad tas ir, sapratīsi ka backend pusē jau ir skatāms risinājums. Tālāk izpīpē kā to visu sataisīt ar savu plusiņmīnusiņ sistēmu.

Posted (edited)

process[0][name], process[0][quantity] [ - ]
process[1][name], process[1][quantity] [ - ]
process[2][name], process[2][quantity] [ - ]
[ + ] process[?][name], process[?][quantity] [ - ]
materials[0][name], materials[0][quantity] [ - ]
materials[1][name], materials[1][quantity] [ - ]
materials[2][name], materials[2][quantity] [ - ]
[ + ] materials[?][name], materials[?][quantity] [ - ]

var mēģināt ar jquery apdeitot indexu, bet no malas izskatās čerez (‿ˠ‿)

labojiet ja kļūdos

Edited by NMY
Posted

Vari neupdeitot,  un backend pusē iterē pāri ignorējot kāds ir index.
Pievienojot jaunu lauku,paskaties kāds ir pēdējais index un palielini pa +1 jaunajam vai arī vispār vari random unikālus indeksus ģenerēt. 
Risinājumi var būt dažādi. 

Posted

Parasti šo risināju, ka indeksa vietā lieku kaut kādu placeholder

<input name="data[{{index}}][qty]" />

, un tad uz formas submit

onsubmit...
$('tr').each(function(row, index) {
	row.find('input').each(function(input) {
		input.attr('name', input.attr('name').replace('{{index}}', index);
	});
});

 

Posted
On 2018.01.24. at 3:09 PM, Kemito said:

This case, VueJS jau Tev palīdzētu izdarīt daudz lietu, un sen jau būtu beidzis čakarēties.

+1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...