Javascript PHP不将变量返回到ajax调用
我有一个ajax请求,在返回JSON响应以进行后续处理时遇到问题 在下面的PHP代码中,$unameExists返回true或false,但当我将其发送回JS成功例程console.log(data.unameExists)时;返回为未定义。因此,我的if/else语句执行正确 HTML PHPJavascript PHP不将变量返回到ajax调用,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我有一个ajax请求,在返回JSON响应以进行后续处理时遇到问题 在下面的PHP代码中,$unameExists返回true或false,但当我将其发送回JS成功例程console.log(data.unameExists)时;返回为未定义。因此,我的if/else语句执行正确 HTML PHP 阅读手册有助于: 您没有按照jQuery的预期使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是一个字符串或某种类型的对象,基于数据类型 由于没有设置数据类型,jQuery猜测返回的内容,可
阅读手册有助于: 您没有按照jQuery的预期使用回调参数。第一个成功回调参数是从服务器返回的完整数据。它是一个字符串或某种类型的对象,基于
数据类型
由于没有设置数据类型
,jQuery猜测返回的内容,可能会直接解析为JSON blob
使用以下console.log()
语句检查数据
-参数的内容
success: function(data) {
/* When your PHP script returns a variable that is encoded into JSON: */
console.log(data.unameExists);
/* In all other cases check the `data` arguemtn directly: */
console.log(data);
},
这不是成功回调的工作方式。第二个参数是请求的
textStatus
,而不是从php脚本传递的一些数据。脚本返回的所有数据都将在第一个参数中。而回显多个JSON字符串将导致解析错误,因为这将创建无效的JsonTanks@PatrickEvans。那么,你有什么建议?echo$this->renderScript('json.unaeexists')?你能把收到的信息拿出来吗console@Shibon控制台中的消息很简单:“Success”echo json_encode($unameExists);echo$this->renderScript('json',unmeexists);这里有两个echo使用任意onetex@feeela。我按照建议更改了控制台日志,添加了数据类型,还修改了问题以使其更清晰。变量data.unameExists返回为未定义。还有其他建议吗?德克萨斯州!那么,也检查一下你的PHP:$this->renderScript('json',unmeexists)
=>unameExists
不是一个变量(缺少美元符号),还要检查方法renderScript
的实际功能以及如何在此处使用的框架中输出JSON。
$('#username').on('blur', function() {
$.ajax({
url: "?module=Iders&controller=index&action=check_user",
data: { 'username' : $('#username').val() },
type: "POST",
dataType: 'json',
success: function(data, unameExists) {
console.log(data.unameExists);
console.log(unameExists);
if(data.unameExists === 'true') {
alert('Username is NOT available!');
}
else {
alert('Username is available!');
}
},
error: function(data){
//error
}
});
public function check_userAction() {
$username = trim($_REQUEST['username']);
$unameExists = Users_Model_Users::isExistUsername($username);
echo $this->renderScript('json', unameExists);
}
success: function(data) {
/* When your PHP script returns a variable that is encoded into JSON: */
console.log(data.unameExists);
/* In all other cases check the `data` arguemtn directly: */
console.log(data);
},