我有Ajax文件,其中编写的代码接受用户的值,然后这些值在Ajax函数中获取,如下所示:
$(document).ready(function(){
$("#newsletterform").validate();
$('#Submit').click(function(){
var name = $('#newsletter_name').val();
var email = $('#newsletter_email').val();
sendValue(email,name);
});
});
传递值和从其他文件获取值的函数:
function sendValue(str,name){
$.post(
"newsletter/subscribe.php", //Ajax file
{ sendValue: str,
sendVal: name
},
function(data2){
$('#display').html(data2.returnValue);
},
//How you want the data formated when it is returned from the server.
"json"
);
}
并将这些值传递给名为“subscribe.php”的另一个文件,其中写入数据库的插入代码,并再次将值返回到我的第一个ajax函数,如下所示:
echo json_encode(array("returnValue"=>$msg));
The msg is ging to contain my message to be displayed.
但是现在,这在localhost上运行正常,我得到正确的返回值nad消息但是当我在服务器上传它时,这给了我一个错误:
data2 is null
[Break on this error] $('#display').html(data2.returnValue);
这只会给返回值带来错误,但插入,发送邮件功能正常 .
请给我一个很好的解决方案,我可以在没有任何错误的情况下取回返回值 .
提前致谢 .
4 回答
如果它适用于您的开发站点,我怀疑您的PHP脚本中存在错误 . 你的主机可能运行一个没有json_encode()的古老php版本 . 只需手动调用脚本即可检查其输出 . 如果它需要POST,您可以写一个表单或使用FireBug检查结果到您的ajax调用
使用:
如果没有其他解释,为什么会这样,请尝试这样做:
如果你有firebug,请将data2写入其控制台并查看它是什么:
此外,你可以使用firebug网络面板来查看你的php文件原始响应(如果它有错误 - 你会在那里看到它) .