2017-03-20 4 views
0

Hallo Leute, hoffe, du kannst mir helfen und mir einen Rat geben, weil ich momentan nicht weiß, was ich tun soll. Bitte freundlich helfen.Dynamisches Formular Speichern in DB

Ich habe dynamische Form, wo ich neue Reihe hinzufügen (anhängen) kann, aber wenn ich versuchte, es zu speichern, sagte Wert undefined Offset. Bitte schauen Sie in meinen Code

Das ist meine Ansicht

<tbody> 
       <tr> 
       <td>1</td> 
       <td><textarea class="form-control" rows="3" name="analisa[0]" placeholder="Analisa Penyebab" style="resize: none; 
       height: 50px"></textarea></td> 
       <td><textarea class="form-control" rows="3" name="tindakan[0]" placeholder="Tindakan Perbaikan dan Pencegahan" 
       style="resize: none; height: 50px"></textarea></td> 
       <td><input class="form-control" type="text" name="pic[0]" placeholder="PIC"></td> 
       <td><input class="form-control" type="date" name="tanggal_pelaksanaan[0]"</td> 
       </tr> 
      </tbody> 
      </table> 

      <a class="button" href="#" role="button" id="add">&nbspTambah Analisa</a> 

Und das ist mein Javascript

$(document).ready(function(){ 
    var i = 1; 

    $('#add').click(function(){ 
     i++; 
     $('#tbanalisa tbody').append("<tr>"+"<td>"+i+"</td>"+"<td><textarea class=\"form-control\" rows=\"3\" name=\"analisa"+i+"\" placeholder=\"Analisa Penyebab\" style=\"resize: none; height: 50px\"></textarea></td>"+"<td><textarea class=\"form-control\" rows=\"3\" name=\"tindakan"+i+"\" placeholder=\"Tindakan Perbaikan dan Pencegahan\"style=\"resize: none; height: 50px\"></textarea></td>"+"<td><input class=\"form-control\" type=\"text\" name=\"pic"+i+"\" placeholder=\"PIC\"></td>"+"<td><input class=\"form-control\" type=\"date\" name=\"tanggal_pelaksanaan"+i+"\" id=\"date"+i+"\" ></td>"+"</tr>"); 

    document.getElementById('count').value = i; 
    }); 

}); 

Und das ist meine Funktion in der Steuerung

for($i=0; $i<2; $i++){ 
     $data[] = array(
      'id_tindakan'=>$tindakan->id, 
      'analisa'=>$request->analisa[$i], 
      'tindakan'=>$request->tindakan[$i], 
      'pic'=>$request->pic[$i], 
      'tanggal_pelaksanaan'=>$request->tanggal_pelaksanaan[$i] 
     ); 
    } 
    DB::table('analisas')->insert($data); 

ich zu ändern Versuchte Index von jedem Array in Javascript nicht analisa [i], aber ich versuche analsia [1] und es funktioniert gut. Warum mache ich meinen Code Fehler?

Antwort

0

undefined offset bedeutet, entweder gibt es nichts in diesem Index oder einfach Ihr Objekt ist kein Array. Für Ihren Fall denke ich, dass Ihre Variable kein Array ist. In Ihrem Javascript, tun Sie

name=\"analisa"+i+"\" 

Was bedeutet, dass der tatsächliche Name in html als

name="analisa2" 

gemacht wird Während in Laravel Sie es mit analisa[2] erhalten möchten, die kein Array ist.

Als Lösung Sie entweder ändern Sie Javascript es als ein Array zu nennen

name=\"analisa["+i+"]\" 

Oder Ihr Controller ändern, um die exakt gleichen Namen von Javascript gesendet

'analisa'=>$request->analisa.$i, 
+0

hallo Wirbel danken holen zu helfen ich wieder, es ist großartig –