首页 文章

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

提问于
浏览
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' .

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

    您正在创建具有相同名称的文本框

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

    价格和数量是阵列的地方

相关问题