Php 将多个文本框值传递给控制器代码点火器

Php 将多个文本框值传递给控制器代码点火器,php,javascript,jquery,ajax,codeigniter,Php,Javascript,Jquery,Ajax,Codeigniter,我是新手,所以我不知道怎么做。 实际上,我的视图页面有五行,我是通过for循环生成的,每行包含两个选择框和两个输入框。我不知道如何首先在jQuery中获取这些值,然后将其传递给控制器。实际上我知道如何从一个简单的文本框中获取值,但因为我在循环中生成它们并给它们一个单独的id,所以我不知道如何在jQuery中获取值,然后传递给控制器 这是我的看法 <tr> <th>Category:</th> <th>Items

我是新手,所以我不知道怎么做。 实际上,我的视图页面有五行,我是通过for循环生成的,每行包含两个选择框和两个输入框。我不知道如何首先在jQuery中获取这些值,然后将其传递给控制器。实际上我知道如何从一个简单的文本框中获取值,但因为我在循环中生成它们并给它们一个单独的id,所以我不知道如何在jQuery中获取值,然后传递给控制器

这是我的看法

       <tr>
        <th>Category:</th>
    <th>Items:</th>
       <th>Selling Price:</th>
        <th>quantity:</th>

</tr>

    <?php for ($i = 0; $i < 5; $i++) {

    ?>
    <tr> //Categories
<td><?php echo form_dropdown('cat_id', $records2, '#', 
        "id='category_".$i."'  onchange='getItems(this.value,".$i.")' ");?>
                        </td>
          <!-- Items -->

  <td>form_dropdown('item_id', $records3, '#', "id='items_".$i."'"); ?> </td>
    <!-- end of Items -->



    <td> <?php echo form_input($price); ?></td>

<td><?php echo form_input($quantity); }?></td>
在您的情况下,设置输入的名称并选择如下元素:cat_ID[]、item_ID[]、prices[]和Quantity[]。注意这些名称末尾的[]我已经更改了名称,使其成为复数形式,这只是一个名称约定:

在控制器中,$this->input->post'cat_id'将返回一个名为cat_id的数组并包含您的所有id,这与$this->input->post'item_id'、$this->input->post'prices'、。。。您可以使用类似这样的for循环遍历所有已发布的值:

对于$i=0$i$data['cat_id'][$i], 'item_id'=>$data['item_id'][$i], 'price'=>$data['price'][$i], “数量”=>$data['quantity'][$i], ; }
要使用jQuery在Ajax中发送表单数据,可以设置表单数据=$'your-form-id'。序列化;与手工构建其价值不同:

不了解php,但您可以在请求中发送多个参数,如:

   var cat_id = $('#cat_id').val();
   var quantity = $('#quantity').val();
   var item_id = $('#items').val();

$.ajax({
url: "<?php echo site_url('salesController/addSales'); ?>",
type: 'POST',
data: 'cat_id='+cat_id+'&quantity='+quantity+'&item_id='+item_id,
success: function() {

}

也许这有助于您或其他人帮助您

好的,我会尝试一下,然后回复您,但是jquery函数var item_id=$'items.val;在这里,我做错了,因为我的项目id不断变化,并且像这个项目0,项目1一样变为0-4。。如何在jquery中获取这些值?我已经更新了答案,修改了如何获取表单数据:Thanksss it works。。你很亲切。。。。。除了数量和价格没有进入数据库外,一切正常。。正如你所说,我已将价格和数量文本框的名称更改为价格[]和数量[…]。。我在控制器中得到的值就像价格和数量“价格”=>this->input->post“价格”。。我做得对吗。。我想我必须把它改成“价格”=>$this->input->post'price[]”对吗?好的,我明白了。。我知道出了什么问题,谢谢你。。你为我做了很多。。上帝保佑你,如果你的输入元素名称是价格和数量,你必须在你的控制器中使用$this->input->post'price'和$this->input->post'quantity'。我发现您必须修改echo form_input$price和echo form_input$quantity以包含名称。
  <script type="text/javascript">
 $('#btns').click(function() { //  $("#form").serialize()
var item_id = $('#items').val();   
var item_id = $('#items').val();


var price = $('#price').val();
var quantity = $('#quantity').val();




var form_data = {
        cat_id: $('#cat_id').val(),

        quantity: $('#quantity').val(),
        item_id: $('#items').val(),




};


$.ajax({
    url: "<?php echo site_url('salesController/addSales'); ?>",
    type: 'POST',
    data: form_data,
    dataType: 'json',
    success: function(msg) {
        if(msg.res == 1)
        {

            alert("true");
        }
        else{
            alert("false");          
          }


    }
});

return false;
    });


</script>
       $data = array(
            'cat_id' => $this->input->post('cat_id'),

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

            );
   var cat_id = $('#cat_id').val();
   var quantity = $('#quantity').val();
   var item_id = $('#items').val();

$.ajax({
url: "<?php echo site_url('salesController/addSales'); ?>",
type: 'POST',
data: 'cat_id='+cat_id+'&quantity='+quantity+'&item_id='+item_id,
success: function() {

}
params.cat_id
params.item_id etc...