2016-09-20 10 views
0

私はこれに固執しており、実際に問題がどこにあるのか実際見ていません。同じ値を返すPHP配列

私はそのように配置されているinputタグの束を持っている:

<div class="col-md-3"> 
    <label>Material 1</label> 
    <input hidden="hidden" name="idMaterial[]" value="13" type="text" /> 
    <input class="form-control" name="total[]" type="text" /> 
</div> 

<div class="col-md-3"> 
    <label>Material 2</label> 
    <input hidden="hidden" name="idMaterial[]" value="8" type="text" /> 
    <input class="form-control" name="total[]" type="text" /> 
</div> 

私はそのような20の入力を持って、ここでのアイデアは、私は資料1の入力フィールドに10を書いた場合、私のDBは、ということですreceiceのようなもの:

id   => A.I 
idMaterial => 13 
total  => 10 

しかし、私は、コードを実行したら、それは(私が1回の以上の入力で書く場合でも、idMaterialを繰り返すことは、常に最初のを繰り返します。)そのように来る:

私はそのフォームを受け取るために使用しているコードだ210

$idMaterial = array(); 
$total = array(); 

if($this->input->post('total')){ 
    foreach($this->input->post('idMaterial') as $row){ 
     $idMaterial = $row; 

     foreach($this->input->post('total') as $row2){ 
      $total = $row2; 

      echo 'Material: '. $idMaterial .'<br> Total: '. $total. '<br><br>'; // TESTING THE OUTPUT 
      $query = $this->pedido->salvaLabMaterial($total, $idMaterial); // I'M SENDING THE DATA TO MODEL HERE 
     } 
    } 
} 

任意のヒントは非常に歓迎です。

+0

あなたのループが入れ子になっていますあなたが望む結果を得るつもりはありません。これを正しく行うには、実際にキー名で関連する合計を参照できるように、入力名に 'idMaterial [1]'と 'total [1]'というキー値を実際に設定します。一致する合計を得るために、それぞれの代わりに '$ _POST ['total'] [$ matching_key]' – cmorrissey

+0

を入力する必要はありません。いくつかの仕事では、20のうち2つだけを記入することになります。他の18の入力フィールドをnullとして受け取る代わりに、これらの2つを受け取ることができます。私はこれだけでそれに達することができるだろうか? – VerdenKaf

答えて

0

@RiggsFolly

私はポストにあなたが言ったように、それはHTMLフォームから来て道を送るよどこだこと:

$query = $this->pedido->salvaLabMaterial($this->input->post('total'), 
             $this->input->post('idMaterial'), 
             ); 

モデル:

public function salvaLabMaterial($this->input->post('idMaterial'), $this->input->post('total')){ 

    $query = $this->db->query(" insert into labpedidomaterial (idMaterial, total) values ('".$this->input->post('idMaterial')."', '".$this->input->post('total')."') "); 

} 
+0

ここにあなたのロジックには多くのことが間違っています。適切な答えはプログラミングの完全なトレーニングコースを含むので、私は私の答えを削除しました。 – RiggsFolly

関連する問題