2017-10-12 10 views
0

私はプログラミングとPHPとYii2を学習するのが初めてです。私は配列の複数の値のループを使用する必要があります。私はここで名前の前に配列ボックスを使用しています。名前の前に配列ボックスを持つPhpの配列の複数値のループを使う方法は?

私の入力フィールドは、次のとおりです。 - 私のコントローラで

<div class="row thisIsCloned"> 
    <div class="col-lg-5 col-md-5 col-xs-12"> 
     <label for="">Salary Head</label> 
     <?php 

     $dept = \yii\helpers\ArrayHelper::map(app\modules\hrm\models\HrmSalaryHead::find()->where(['status'=>1])->all(), 'id', 'salaryHead'); 
     echo Select2::widget([ 
      'name' => 'HrmRemuneration[0][salaryHead]', 
      'data' => $dept, 
      'options' => [ 
       'placeholder' => 'Salary Head ...', 
       'id'=>'salaryHead', 
      ], 
      'pluginOptions' => [ 
       'allowClear' => true, 
      ], 
     ]); 

     ?> 
    </div> 
    <div class="col-lg-4 col-md-4 col-xs-12"> 
     <label for="">Salary Amount in </label> (<span class="rupee">Rs. </span> <span class="percentage" style="display:none">%</span>) 
     <input type="checkbox" name="HrmRemuneration[0][checkbox]" value="1" class="status"> 
     <input type="hidden" value="0" name="HrmRemuneration[0][checkbox]" > 
     <span><input type="number" class="form-control" name="HrmRemuneration[0][salaryAmount]" required=""></span> 
    </div> 
    <div class="col-lg-1"> 
     <button id="thisIsClonNewRowButton" type="button" class="pull-right quantity-right-plus btn btn-success" style="margin-top: 28px;height: 27px !important; padding: 3px 6px !important;"> 
      <span class="glyphicon glyphicon-plus"></span> 
     </button> 
    </div> 
</div> 
<div class="renderremuneration"></div> 

私はに投稿場所: -

public function actionRemuneration() 
{ 
$model=new HrmRemuneration(); 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $a=($_POST["HrmRemuneration"]); 



    $count = count($a); 
    for ($i = 0; $i < $count; $i++) { 
     $pmodel = new HrmRemuneration(); 
     $pmodel->salaryHead=$model[$i]['salaryHead']; 
     $pmodel->amountCalc=$model[$i]['amountCalc']; 

     if(!$pmodel->save()) 
     { 
      $this->Message('Sorry !! Error occurs in adding Salary Head', 1); 
      return $this->redirect(['/hrm/settings/addsalaryhead']); 
     } 
    } 
} 

} 
else 
{ 
return $this->render('remuneration',['model'=>$model]); 
} 
} 

は、どのように私は名前の前に列ボックスを使用して値を投稿することができますか? HrmRemuneration[0]['salaryHead']のような入力フィールド名が使用されます。どうやってやるの ?

+0

申し訳ありませんを使用する必要がありますが、あなたは「アレイ箱」で何を意味するのですか? – rebecca

+0

[] < - 配列ボックス –

+0

インデックスが必要ですか? 'HrmRemuneration [0] ['salaryHead']' – rebecca

答えて

0

あなたが$array[$i]['attr_name'];なく$array['attr_name'][$i];

$count = count($model); 
for ($i = 0; $i < $count; $i++) { 
     $pmodel = new HrmSalaryHead(); 
     $pmodel->salaryHead=$model[$i]['salaryHead']; 
     $pmodel->amountCalc=$model[$i]['amountCalc']; 

     if(!$pmodel->save()) 
     { 
      $this->Message('Sorry !! Error occurs in adding Salary Head', 1); 
      return $this->redirect(['/hrm/settings/addsalaryhead']); 
     } 
+0

foreachループを使用しました.. foreachループを使用してこの値を保存するにはどうしたらいいですか?forループを使用するとループの前に属性を数えることができます? –

+0

あなたのコードはforループに基づいています..どのコードを参照していますか? – scaisEdge

+0

ok!forループでも値を数えることができますか?値を数えながらエラーを表示します –

関連する問題