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

pass multiple textbox box values to controller in CodeIgniter

本文关键字:CodeIgniter 控制器 值传 文本      更新时间:2023-09-26

我想发送多个文本框值到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 ?>

我已经设置了价格和数量字段的名称为'price'和'quantity'

这是我的控制器。

$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而言,无论我在item中选择什么,它都会在数据库中保存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>

您正在创建同名的文本框

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

其中价格和数量为数组