jQuery.ajax响应数据给出null

时间:2013-05-19 08:17:56

标签: php jquery

我正在尝试使用jQuery和AJAX将数据插入MySQL数据库。我在add.php文件中编写了查询参数。我想立即在表单下面显示表单数据。

jQuery的:

jQuery("#addStockInForm").submit(function(e){
  e.preventDefault();
  dataString = jQuery("#addStockInForm").serialize();
  jQuery.ajax({
    type: "POST",
    url: "add.php",
    data: dataString, 
    dataType: "json",
    success: function(data) {
        //$("div#showinstant").html(data);
        alert(data);
    }
  });
});

add.php文件

require 'foo.config.php';
if(isset($_POST['addStockIn'])) {
  $query = "INSERT INTO stockin ( serialno, project_id, ...... etc. ) VALUES
(`:serialno, :project_id, ....... etc. )";

add-stockin.php文件

<form class="form-horizontal" id="addStockInForm" method="post">
.....
</form>

3 个答案:

答案 0 :(得分:0)

您应该将PHP代码中的数据返回到您的前端

require 'foo.config.php';
if(isset($_POST['addStockIn'])) {
   $query = "INSERT INTO stockin ( serialno, project_id, ...... etc. ) VALUES
                                 (`:serialno, :project_id, ....... etc. )";
...
...
echo yourdata

答案 1 :(得分:0)

add.php文件中没有返回。虽然您使用dataType作为'json', 你应该以json格式返回数据。 你应该尝试这样的事情。

  

add.php

require 'foo.config.php';
if(isset($_POST['addStockIn'])) {
  $query = "INSERT INTO stockin ( serialno, project_id, ...... etc. ) VALUES
(`:serialno, :project_id, ....... etc. )";
//extra code here
$output = array('res' => $data); //$data : form data to show in html file
$output = json_encode($output);
echo $output; exit;
  

jQuery的:

jQuery("#addStockInForm").submit(function(e){
  e.preventDefault();
  dataString = jQuery("#addStockInForm").serialize();
  jQuery.ajax({
    type: "POST",
    url: "add.php",
    data: dataString, 
    dataType: "json",
    success: function(data) {
        //$("div#showinstant").html(data);
        alert(data.res);
    }
  });
});

答案 2 :(得分:0)

主要问题出在其他地方......问题出在isset函数参数

if(isset($_POST['addStockIn'])) {
}

我已将此更改为

if(isset($_POST['serialno'])) {
}

它工作正常!

@ LX7帮助我以不同的方式思考,谢谢老兄......