我是Ajax的新手,希望通过链接到PHP脚本,在JQUERY中使用AJAX进行一些数据库交互。
$(function() {
$.ajax({
type: "POST",
url: "response.php",
data: {name:"amol"},
success: function (data) {
if (data.Success) {
alert('Success! We have data.Success!');
} else {
alert('Error! We do not have data.Success!');
}
},
error: function(jqXHR, textStatus) {
alert('Error: ' + textStatus);
}
});
});
我的response.php文件包含的内容不多。其中的代码是:
<?php
echo "Hello";
?>
我想将此代码用于数据库交互。但是,当我运行这么多代码时,我得到输出为&#39;错误!我们没有data.Success!
另外,我想知道,如何从成功响应的PHP脚本输出变量?
提前感谢您的帮助!!
答案 0 :(得分:2)
success: function(data) {
alert('Success! We have data - Success!');
}
将按预期工作。
您正在做的是询问您是否有一个data
对象,其中Success
项目的行
if (data.Success) {
data
只是一个字符串,因此评估为false
。
success: function(data) {
部分仅在您成功返回数据时才会出现
然后,您可以通过将该数据添加到div,alert或其他任何
来使用数据 success: function(data) {
alert(data);
}
由于data
变量没有Success
项,您正在返回预期的内容 - 而是返回一个字符串(想想$ string =&#34; hello&#34; - { {1}} = $ string生效!)
答案 1 :(得分:0)
试试这段代码......
$.post("response.php", {name:"anmol"},function(data){
alert(data);
});
在您的上述代码中..
<?php
echo "Hello";
?>
这里你传递字符串,所以你可以使用..
如果你想传递值数组,那么就可以像这样使用
<?php
$data=array(
"name":"anmol",
"age":"21",
);
echo json_encode($data);
?>
$.post("response.php", {name:"anmol"},function(data){
var json = $.parseJSON(data);
alert(json.name);
alert(json.age);
});
这里只有在功能成功时才会收到警报,如果功能失败,你将无法获得任何回复
答案 2 :(得分:0)
这适用于(我刚刚测试过)您的JavaScript代码:
<?php
$json_response = array();
$json_response['Success'] = true;
header('Content-Type: application/json');
echo json_encode($json_response);
?>
问题在于您没有使用JSON对象(这是一种数据交换格式)进行响应。
答案 3 :(得分:0)
你帖子中的第一条评论是正确的,以及Graham Ritchie的解释;另外,您应该查看jQuery AJAX documentation中的示例。
此外,您应该考虑done
和fail
,而不是success
和error
,因为它们在较新版本的jQuery中被认为已被弃用。他们只是更先进,但更强大。
这是一个一般的例子:
$(function() {
$.ajax({
type: "POST",
url: "response.php",
data: {name:"amol"}
})
.done(function(data) {
// What you want to do in case of success
// 'data' is going to be what the URL gives you. i.e.: HTML, JSON
// You could append the HTML to a DIV or use the JSON in some way
})
.fail(function(jqXHR, textStatus) {
// What you want to do in case of error
});
});
我建议你查看this tutorial,特别是关于AJAX和Deferred的最后一章。
答案 4 :(得分:-4)
如果你是ajax的新手。我建议你开始使用这个狗屎
$.ajax({
url: 'response.php',
type: 'POST',
dataType: 'json',
data: {name: 'amol'},
})
.done(function(data) {
if (data.Success) {
alert('Success! We have data.Success!');
} else {
alert('Error! We do not have data.Success!');
}
console.log("success");
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});