我试图从ajax调用中获取输出的值。我得到的是NULL,我做什么。 我的猜测是我的代码结构错误,我希望知道ajax的人会发现我的错误:
我的php中有以下代码。这个代码可以工作,我已经测试过,它打印出预期的输出:
$output_string = array();
foreach ($resultfromdb as $key) {
if (($key) && ($key[0]['username'] !="")) {
//echo "Username is already taken";
$output_string = array('outputmsg' => 'User name is already taken');
} else {
//$success = "User name is already in use";
$output_string = array('outputmsg' => 'User name is free for use');
}
}
echo json_encode($output_string);
这是我的js。文件
// list all variables used here...
var
regform = $('#reg-form'),
memberusername = $('#memberusername'),
memberpassword = $('#memberpassword'),
memberemail = $('#memberemail'),
memberconfirmpassword = $('#memberconfirmpassword');
regform.submit(function(e) {
e.preventDefault();
var memberusername = $(this).find("#memberusername").val();
var memberemail = $(this).find("#memberemail").val();
var memberpassword = $(this).find("#memberpassword").val();
var memberconfirmpassword = $(this).find("#memberconfirmpassword").val();
var url = $(this).attr("action");
console.log(url);
return $.ajax({
type:'POST',
url: $(this).attr("action"),
dataType: 'json',
data: {memberusername: memberusername, memberemail: memberemail, memberpassword: memberpassword},
success: function(result){
// $('#result_table').append(output_string);
alert(result);
alert(output_string);
alert(result.output_string);
console.log(result.output_string);
} // End of success function of ajax form
}); // End of ajax call
});
both,alert和console.log打印null ...而不是变量$ output_string的值。有什么帮助吗?
提前致谢
答案 0 :(得分:-1)
如果您的PHP代码运行良好并且正在创建数组,那么您必须在成功函数中解析JSON输出。
success : function(result){
var responseData = $.parseJSON(result);
alert(responseData.output_string);
}