2017-03-20 13 views
0

こんにちは、あなたは私を助け、いくつかのアドバイスを与えることができます私は今何をすべきかわからない原因になることを願っています。親切にお手伝いください。ダイナミックフォームDBに保存

私は新しい行を追加(追加)することができる動的なフォームを持っていますが、値を保存しようとすると、定義されていないオフセットがあります。これは私のビュー

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

であり、これが私の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; 
    }); 

}); 

であり、これは私が変更しようとしましたコントローラー

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

の私の機能である私のコードに

を見てください。 javascriptの各配列のインデックス analisa [i]ではなくanalsia [1]とそれはうまく動作します。なぜ私は自分のコードエラーを作る?

答えて

0

undefined offsetは、そのインデックスに何もない、または単にオブジェクトが配列でないことを意味します。あなたの場合、変数は配列ではないと思います。あなたのJavaScriptでは、あなたはLaravelであなたが配列されていない、analisa[2]でそれを取得したいのに対し、実際の名前は

name="analisa2" 

としてHTMLにレンダリングされることを意味

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

を行います。解決策として

、あなたはどちらかあなたのJavascriptが配列

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

としてそれに名前を付けるか、JavaScript

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

から送信されたまったく同じ名前を選ぶためにあなたのコントローラを変更するには変更ハロー渦の感謝を助けるために私は再び、その偉大な –

関連する問題