2017-10-12 3 views
0

Je suis nouveau dans la programmation et l'apprentissage PHP et Yii2 maintenant. J'ai besoin d'utiliser la boucle pour plusieurs valeurs dans le tableau. J'utilise des boîtes de tableau devant le nom ici.Comment utiliser la boucle pour une valeur multiple dans un tableau dans Php avec des boîtes de tableau devant le nom?

Mes champs d'entrée sont les suivants: -

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

Pour mes contrôleurs où je poste à: -

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

Comment puis-je poster la valeur qui utilise la boîte de tableau en face du nom? Les champs de saisie comme HrmRemuneration[0]['salaryHead'] sont utilisés. Comment puis je faire ça ?

+0

désolé, mais ce que tu veux dire avec « boîte de tableau »? – rebecca

+0

[] <- tableau zone –

+0

de sorte que vous voulez l'index? par exemple pour obtenir le 0 de ceci: 'HrmRemuneration [0] ['salaryHead']' – rebecca

Répondre

0

Vous devez utiliser $array[$i]['attr_name']; et non $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

J'ai utilisé une boucle foreach .. comment puis-je enregistrer cette valeur en utilisant foreach loop ici? pouvez-vous m'aider? et en utilisant pour la boucle comment puis-je compter l'attribut ici avant pour la boucle ? –

+0

votre code est basé sur pour la boucle .. quel code vous référencez? – scaisEdge

+0

ok !! dans pour la boucle aussi comment puis-je compter la valeur? Il montre erreur en comptant la valeur –