jQuery表单序列化CodeIgniter中丢失的数据

jQuery form serialize data missing in CodeIgniter

本文关键字:数据 表单 序列化 CodeIgniter jQuery      更新时间:2023-09-26

我有一个窗体在我的视图页面.....我想通过jquery或ajax发送数据,因为我不想重新加载或刷新页面。我通过jquery序列化发送数据。但是不是所有的字段都是通过serialize提交的。这里的第一个下拉菜单"供应商"是空的。意味着jquery序列化没有捕捉到他的价值,我认为其他的可能也有同样的情况。为什么……这是我的视图页面我的表单名称和id是"form"

  <?php  echo form_open('stockInController/addStockIn', $attributes);?>
 <!-- Supplier -->

Select a Supplier
 <select name="sup_id" id="sup_id" class='cho'>
  <option id="y" value="0">--Select--</option>
  <?php foreach($records1 as $r) { ?>
  <option value="<?=$r->sup_id?>">
   <?=$r->sup_name?>
  </option>
  <?php } ?>
  </select>
<!-- end of Supplier -->

     Date:<?php echo form_input($date); ?>
     Bill No: <?php echo form_input($bill_no); ?>


 <table>
  <tr>
   <th>Category:</th>
   <th>Items:</th>
   <th>Selling Price:</th>
   <th>quantity:</th>
   <th>total:</th>
  </tr>
        <?php for ($i = 0; $i < 5; $i++) { ?>
  <tr>
      <td>
         <?php echo form_dropdown ('cat_id'.$i,   $records2,'#',     "id='category_".$i."'onchange='getItems(this.value,".$i.")' ");?>
   </td>


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


<td> <input type="text" name = "price_<?php echo $i ?>" id = "price_<?php echo $i  ?>"    echo "$i"?>)'>
   </td>
     <td><input type="text" name = "quantity_<?php echo $i ?>"
                           id = "quantity_<?php echo $i ? >"  echo "$i"?>)'>
   </td>
   <td><input type="text"name = "total_<?php echo $i ?>" id = "total_<?php echo $i ?>">
   </td>
  </tr>

  <?php }?>
  <tr>
      <td>
    <?php echo form_button($button); ?>
    <?php form_close();?>
   </td></tr>
这是我的jquery函数
     $('#btn').click(function(event) {
    form = $("#form").serialize();
  $.ajax({
    type: "POST",
    url: "<?php  echo site_url('stockInController/addStockIn'); ?
    data: form,
    success: function(data){
   alert("true");
    }
  });
  event.preventDefault();
  return false;
}); 

首先确保您正在捕获表单对象。尝试捕获id为

的表单。
 <?php  echo form_open('stockInController/addStockIn', "id = 'form_id'");?>
与JQuery

var form = $('#form_id').serialize();

在javascript中定义一个变量也需要你缺少的VAR关键字。你缺少的第三件事"在url

url: "<?php  echo site_url('stockInController/addStockIn'); ?>"