2017-01-02 17 views
0

私はユーザロールシステムを作成する必要があるプロジェクトで作業しています。ほとんど完了しましたが、最終的にはデータベースにルートとユーザ権限を追加する必要があります複数の選択フィールドの配列を作成する

[route] => Array 
    (
     [0] => api/user 
     [1] => members 
    ) 

[assess] => Array 
    (
     [0] => read 
     [1] => write 
     [2] => read 
     [3] => delete 
    ) 

のような配列しかし、私は必要はこちら

[0](
    [route] => Array 
     (
      [0] => api/user 
     ) 
    [assess] => Array 
     (
      [0] => read 
      [1] => write 
     ) 
) 
[1](
    [route] => Array 
     (
      [0] => members 
     ) 
    [assess] => Array 
     (
      [0] => read 
     ) 
); 

のような配列を取得することである私のHTMLコードは次のとおりです。

<tbody class="tbody"> 
    <tr class="gradeX"> 
     <td> 
     <select name="route[]"> 
     <?php $routeCollection = Route::getRoutes(); 
      foreach ($routeCollection as $value) { 
       echo '<option value="'.$value->getPath().'">'.$value->getPath().'</option>'; 
      } ?> 
     </select> 
     </td> 
     <td><input type="checkbox" value="read" name="check[]"></td> 
     <td><input type="checkbox" value="write" name="check[]"></td> 
     <td><input type="checkbox" value="delete" name="check[]"></td> 
     <td><a href="javascript:;" style="padding: 3px 9px;" class="remove">Delete</a></td> 
     <div class="add-row" style="float: right;border: 1px dashed grey;border-radius:5px;border-bottom: 0px;"> 
      <a href="javascript:;" style="padding: 3px 9px;"><span class="add">Add New</span></a> 
     </div> 
    </tr> 
    </tbody> 
+1

どのように分割しますか?どのようなロジックに基づいて? –

+0

あなたの2つの配列に基づいて、それは不可能です。あなたは、あなたの希望する出力を得るために実装しようとしているロジックを教えてください –

+0

ルートとそれに関連する評価をどのように決定するのですか? –

答えて

0

は、ASのみのチェックボックスがすべての属性名の配列にkey値を追加し、提出し、あなたの選択にあなたのチェックボックスをリンクする形で提出されている確認 - あなたがあなたのjavascriptのコードでキーをインクリメントする必要があります

<tbody class="tbody"> 
    <tr class="gradeX"> 
     <td> 
     <select name="route[0]"> 
     <?php $routeCollection = Route::getRoutes(); 
      foreach ($routeCollection as $value) { 
       echo '<option value="'.$value->getPath().'">'.$value->getPath().'</option>'; 
      } ?> 
     </select> 
     </td> 
     <td><input type="checkbox" value="read" name="check[0][]"></td> 
     <td><input type="checkbox" value="write" name="check[0][]"></td> 
     <td><input type="checkbox" value="delete" name="check[0][]"></td> 
     <td><a href="javascript:;" style="padding: 3px 9px;" class="remove">Delete</a></td> 
     <div class="add-row" style="float: right;border: 1px dashed grey;border-radius:5px;border-bottom: 0px;"> 
      <a href="javascript:;" style="padding: 3px 9px;"><span class="add">Add New</span></a> 
     </div> 
    </tr> 
    </tbody> 

これはPHPで次に

を動作させるために、すなわち、リンクするkeyを使用して、自分の価値観の上にあなたがループすることができ、「新規追加」。

$array = []; 
foreach($_POST['route'] as $key => $value){ 
    $array[] = array("route" => array($_POST['route'][$key]), // this is the route value, ie. api/user or members 
        "assess" => array($_POST['check'][$key]) //this is the check array, ie. read, write or read 
       ); 
} 
+0

sir私は新しい行を追加するための作業用jQueryスクリプトを持っています –

+0

新しい行を追加するときに 'key'を増やすにはjQueryスクリプトを変更するだけです。 – Sean

関連する問題