2017-01-06 12 views
0

anglejsのワンクリックで5つの入力値を送信しています。データはオブジェクトのオブジェクトとして送信されます。例えば、要素が空であれば未定義のインデックスエラーです

Object{0:Object, 1:object, 2:Object .., 5:Object}

すべてのオブジェクトには、姓と名義の2つの入力があります。ユーザーは任意の入力ペアを送信できます。

私はこれを投稿リクエストとして送信しています。今、バックエンド側で、私はLaravelを使っています。変数にこのオブジェクトを格納しています。 `$ x = $ request-> input( 'data');

オブジェクトごとにループして新しいレコードを作成します。

問題私は直面しています: すべてのオブジェクトが送信されていれば、データベースにデータを適切に保存しています。 しかし、オブジェクトの1つが空の場合、Emptyは2番目の入力と3番目の入力のみを使用し、1番目、3番目、5番目の入力を空白のままにしておくことを意味します。

その後、最初のオブジェクトのように未定義インデックスのエラーをスローすると、最初のリクエストでファーストネームまたはラストネームが返されません。だから私はこの問題を解決することができます。私はそれが受信したフィールドを更新する必要がありました。

+0

@Mohammadを受け入れるためにnullableにごfirstnamelastnameを変更するには:これを処理する他の方法はありませんあなたは – Gayan

答えて

0

AJAX機能の入力値をチェックし、これらのキーの値を渡すだけ

+0

を保存するために失敗したときに送信要求JSONをご提示くださいララベルで? – Mohammed

+1

投稿されたデータを印刷しなければならないので、なぜループが未定義のインデックスエラーをもたらすのかを知るための配列形式を得るでしょう。 – Learner

+0

これはうまくいきます。ありがとう。 – Mohammed

1

あなたが永続化する前に、空のオブジェクトをフィルタリングする必要がありそうです。

$data = $request->input('data'); 
$dataToSave = []; 
foreach ($data as $value) { 
    if (!empty($value)) { 
     $dataToSave[] = $data; 
    } 
} 
// persist $dataToSave with your logic 

その優れたnull

+1

@humbledust way私のために私たちの仕事。期待して、おかげ。 – Mohammed

関連する問題