0

複数のテキストボックスの値を CodeIgniter に送信したい..このコードが機能しない理由がわかりません..

これが私の見解です

 <th>Items:</th>
 <th>Price:</th>
 <th>quantity:</th>
 <th>total:</th>
    </tr>

<?php for ($i = 0; $i < 5; $i++) {?>
    <tr>
<td><?php echo form_dropdown('cat_id[]', $records2, '#', 
         "id='category_".$i."'     onchange='getItems(this.value,".$i.")' ");?>
                        </td>
     <!-- Items -->

  <td> <?php echo form_dropdown('item_id[]', $records3, '#', "id='items_".$i."'"); ?>

    </td>

アイテムのドロップダウンオプションはカテゴリに対して来ています..つまり、カテゴリから何かを選択すると、そのカテゴリに対してアイテムが表示されます

  <td><input type="text" name =<?php echo $price;?> id = "price_"<?php echo $i ?>>
</td>

<td><input type="text" name =<?php echo quantity;?> id = "price_"<?php echo $i ?>

価格と数量のフィールド名を「価格」と「数量」に設定しました

これが私のコントローラーです..

$data3 = array(

            'item_id' => $this->input->post('item_id'),
            'price' => $this->input->post('price'),
            'quantity' => $this->input->post('quantity'),




    ); 

    $data4 = array();
    for($i = 0; $i < 5; $i++)
    {
        $data4 = array (

                'item_id' => $data3['item_id'][$i],
                'price' => $data3['price'][$i],
                'quantity' => $data3['quantity'][$i],

        );
    }

    $this->load->model('salesModel');
    $this->salesModel->addSoldItemtoDB($data4);

問題は、価格値「null」がデータベースに入り、数量についても同じであり、 item_id に関する限り、アイテムで選択したものは何でもデータベースにID「1」を保存しています..

上記の2つのドロップダウンボックスの機能のための私のJavaスクリプト。カテゴリーとアイテム

    <script type="text/javascript">

function getItems(category_id,index) {

       $("#items_" + index + " > option").remove(); 

    $.ajax({
        type: "POST",
        url: "stockInController/get_Items/"+category_id, 
        success: function(items) 
        {
            $.each(items,function(item_id,item_name) 
            {
                var opt = $('<option />'); 
                opt.val(item_id);
                opt.text(item_name);
                $('#items_'+ index).append(opt); 
            });
        }

    });
}
  </script>
4

1 に答える 1

0

同じ名前のテキスト ボックスを作成しています

<input type="text" name =<?php echo $price;?> id = "price_<?php echo $i ?>" >
<input type="text" name =<?php echo quantity;?> id = "price_<?php echo $i ?>" >

つまり、最後の行のテキスト ボックスの値のみが取得されます。こんなはずじゃなかった

<input type="text" name="prince_<?php echo $i;?>" id="price_<?php echo $i ?>" >
<input type="text" name="quantity_<?php echo $i;?>" id="quantity_<?php echo$i?>">

もう1つの方法は、テキストボックスに配列を作成することです

<input type="text" name="price[]" id = "price_<?php echo $i ?>" >
<input type="text" name="quantity[]" id = "quantity_<?php echo $i ?>" >

そして、これらの配列の値を取得したいとき。

$prices = $this->input->post('price');    
$quantity= $this->input->post('quantity');    

価格と数量が配列の場合

于 2013-01-19T19:29:06.567 に答える