如何在 PHP 中获取 AJAX 结果


How to get the AJAX result in PHP?

当结果存在时,它不会进入if条件,它会进入else。在查询结果$num>0中,我想要一个类似"收据编号已存在"的警报。

$.post("acceptajax.php?confirm1="+confirm+'&receipt='+receipt+'&amount='+amount,function(result,status){
    //$('#divsub'+confirm).html(data);
    if(result == 'exist'){
        alert('Receipt number Alerady Exit');
    } else {
        $('#accept_'+confirm).hide();
        $('#unaccept_' +confirm).show();
    }
});

acceptajax.php

$img_id=$_GET['confirm1'];
$receipt=$_GET['receipt'];
$receipt='HYD'.$receipt;
$amount=$_GET['amount'];
$sql=mysql_query("SELECT receipt FROM user WHERE receipt=$receipt");
$num=mysql_num_rows($sql);
if($num==0){
    echo "suc";
} else {
    echo "exist";
}

你在$receipt周围缺少'。试试这个:

"SELECT receipt FROM user WHERE receipt='$receipt'"

旁注 :

1)请不要使用mysql_。它已被弃用并删除 从 PHP 7.使用 mysqli_*PDO

2) 您的查询已打开以进行 sql 注入。阅读此内容: 如何防止 PHP 中的 SQL 注入?

像这样使用查询:

$sql=mysql_query("SELECT receipt FROM user WHERE receipt='".$receipt."'");

而不是使用它,因为这不是正确的编码方式,因为您使用 Post 方法发送数据并使用 Get 方法发送数据。

$.post("acceptajax.php?confirm1="+confirm+'&receipt='+receipt+'&amount='+amount,function(result,status)

你应该像这样使用它:

$.post("acceptajax.php", {confirm1:confirm, receipt: receipt, amount: amount}, function(result, status){
   //your script
 });

并使用 $_POST[]; 方法获取 acceptajax 上的数据.php。希望对您有所帮助。