将多个文本框值传递给CodeIgniter中的控制器

时间:2013-01-19 18:39:48

标签: php javascript jquery ajax codeigniter

我想向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'。

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

1 个答案:

答案 0 :(得分: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?>">

另一种方法是在文本框中创建数组

<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');    

价格和数量是数组