簡體   English   中英

jQuery.ajax響應數據為null

[英]jQuery.ajax response data giving null

我正在嘗試使用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>

您應該將數據從您的php代碼返回到前端

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

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

主要問題出在其他地方...問題出在isset函數參數中

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

我已將其更改為

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

而且工作正常!

@ LX7幫助我改變了想法,謝謝伙計...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM