php - 使用 ajax 时 post 值为 null

标签 php ajax codeigniter

我有这个看法

<div class="w3-row w3-padding-64">
<div class="w3-twothird w3-container">
<form id='create_delivery'  method="post" class="form-horizontal" 
enctype="multipart/form-data">
 from  <input type="text" name="first_address"><br>

To <input type="text" name="second_address" ><br>
<label>weight</label>
<input type="number" name="weight"   ><br>

<label>price</label>
<input type="number" name="price"   ><br>

<label>description</label><br>
<textarea name="description"></textarea>
<br>

<input type="submit" value="Submit">
</form>
</div>

</div>

然后我通过 ajax 向 Controller 方法发送了一个 post 请求

 $(document).ready(function(){
 $("#create_delivery").submit(function(evt){
 var postData = $(this).serialize();
 $.ajax({

 url: baseURL + "deliverys/create_delivery",

 type:'post',

 data:postData,

 dataType:'json',

 success:function(data){

 alert('delivery created');

 }
 });
 evt.preventDefault();
      });
 });

这是 Controller

  public function create_delivery(){
  if(isset($_POST)):
  $first_address=   $this->input->post('first_address');
  $second_address=  $this->input->post('second_address');
  $description=      $this->input->post('description');
  $Weight=           $this->input->post('Weight');
  $price=            $this->input->post('price');

  $data = array(
  "first_address"=>$first_address,
  "second_address"=>$second_address,
  "description"=>$description,
  "Weight"=>$Weight,
  "price"=>$price

  );
  $this->deliverys_model->create_delivery($data);
  endif;
  }

所有值都为空的问题, 当我发送没有ajax的帖子请求时它有效 但是对于ajax,值为NULL

错误编号:1048 INSERT INTO deliverys(first_addresssecond_addressdescriptionready_to_buy重量, 价格) VALUES (NULL, NULL, NULL, NULL, NULL, NULL)

最佳答案

我认为您没有使用 var postData = $(this).serialize() 获取表单数据 .

像这样尝试 $("#create_delivery").serialize()

如果没有<input type="file">在表格中不要使用 enctype="multipart/form-data"

$(document).ready(function(){
 $("#create_delivery").submit(function(evt){
 evt.preventDefault();

 $.ajax({
   url: baseURL + "deliverys/create_delivery",
   type:'POST',
   data:$("#create_delivery").serialize(),
   dataType:'json',
   success:function(data){
     alert('delivery created');
   }
 });
 evt.preventDefault();
      });
 });

关于php - 使用 ajax 时 post 值为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54040042/

相关文章:

用于更新多行(如标记)的 PHP AJAX 数据网格?

javascript - Ajax不会显示在div标签中

javascript - 如何使用 AJAX 将对象数据数组插入数据库

mysql - 如何计算 Codeigniter 中的页面浏览量并通过 IP 地址限制计数?

php - 对于下拉列表如何为单个选项添加类

php - 函数调用 'clear_all_cache' 和 'clear_assign' 未知或已弃用。聪明的错误?

javascript - 使用图表js显示的图表不正确

php - 如何使用 Codeigniter 中的分页库为数据表提供正确的分页

session - 无法使用 CodeIgniter 中的 session 类检索 session ID

php - jQuery、PHP、AJAX、 "tu"变量无故发布,显示在 var_dump() 中