2016-07-03 14 views
0

でPHPの配列にjavascript配列に変換し、私はいくつかのユーザーデータを削除するajaxコールを渡していますが、このデータは隠し入力に渡され、私はforeachループを行うことができるようにPHPの配列に変換したいですその周りに。それをどうすれば実現できますか?laravel

Javascriptの値をそれの出力、

""49,51,53,54"" 

PHPコード、

public function usersDelete(){ 

    $data = Input::all(); 
    $checkedUsers = Input::get('checkedUsers'); // data is an array 

    foreach ($checkedUsers as $checkedUser) { 

     User::where('id', '=', $checkedUser)->first()->delete(); 
    } 
} 

問題は、それが配列のセットで唯一最初の配列値をループすることです。

答えて

1

を使用してPHPでそれを変換することができ、$checkedUsersは、文字列は、あります配列に変換するにはexplode(',', $checkedUsers)を使用する必要があります。 削除する前に、ユーザーが指定されたユーザーを削除するための適切な権限を持っていることを確認します。 JavaScriptを変更してデータを要求するのは非常に簡単です。

+0

laravelはすべてのリクエストに対して必須のトークンを持っていますが、感謝しています。私は認証部分も実装します。 – udemethegrtman

+0

この問題であなたのサポートのために@ありがとう、私は本当にそれを感謝します。 – udemethegrtman

+0

CSRF tokeは、あなたのウェブサイトの外で偽造された要求から保護しますが、ここでは十分ではありません。また、ユーザー認証も、登録ユーザーだけが_User_を削除できるようにします。クライアントはフォームを送信する前にデータを操作できます。例えばフォームはids [1,2,3]のセットを持ち、ユーザーはそのフォームを操作して[1,2,90]を送ることができます。したがって、_User_ 90が元のセットにない場合でも削除を要求します。 – exabyssus

0

なぜあなたはvalueFromInput.split(',')を使用してJSから配列としてデータを送信することができますいずれか

User::whereIn('id',$checkedUsers)->delete(); 
0

を使用するか、入力を使用している場合は、explode(',', $jsData);