我有一个评论页面。通过ajax,向php页面发送请求。 Php然后扫描数据库......通常是标准的逻辑操作。无论如何,我遇到了php
echo '<script>show_info("my_text")</script>';
(show_info - js函数切换信息div并显示我的文本)。 如果一切顺利,DB将传输
echo 'ok';
我的ajax成功
success: function (data) {
if (data == "ok") {
document.write ("It's work!");
};
}
但遗憾的是它不起作用。 也许有必要以某种方式将数据分成两部分,脚本和其他文本。
答案 0 :(得分:2)
您将响应发送到服务器,并以echo '<script>show_info("my_text")</script>';
作为响应。因此,data
不会评估为'ok'。
相反,你应该发回一个数组:
$ret = array(
'script' => 'show_info("my_text")',
'status' => 'ok'
);
echo json_encode($ret); // <--this should be done after all processing
然后在ajax函数中,您需要添加dataType
参数
$.ajax({
//etc
dataType: 'json',
success: function(data){
if(data.status == 'ok'){
eval(data.script);
}
}
});