【发布时间】:2019-02-06 06:10:45
【问题描述】:
我有以下脚本:
$("#spid").blur(function() {
$.ajax({
url: 'getsponsor.php',
type: "POST",
dataType:'json',
data: ({ spid: $("#spid").val() }) ,
contentType: 'application/json; charset=utf-8',
success: function (result) {
$("#sponname").text(result);
},
error: function () {
$("#sponname").text("Cannot fetch the sponsor name.");
}
});
});
注意:#sponname 是一个标签标签。
以下是getsponsor.php的php代码:
if(!isset($_POST['spid']) || empty($_POST['spid']))
echo json_encode("No Data");
else {
$spid=$_POST['spid'];
$stmt = $con->prepare("SELECT name FROM users WHERE id=?");
$stmt->bind_param("s",$spid);
$stmt->execute();
$stmt = $stmt->get_result();
if ($stmt->num_rows >0) {
$row = $stmt->fetch_object();
echo json_encode($row->name);
}
else {
echo json_encode("No Records");
}
}
当我检查页面并转到 Network->Params 时,我从文本框中得到了正确的值:
spid=1125468
但是,当我转到 Network->Response 时,我收到以下消息
“无数据”
请告诉我我做错了什么?
【问题讨论】:
-
不要使用
contentType: "application/json"。 jQuery URL 对参数进行编码。 -
您不需要同时测试
!isset和empty。empty检查是否先设置。
标签: javascript php jquery ajax asynchronous