0

我有一个评论页面。通过ajax,向php页面发送请求。然后php扫描数据库...一般是标准的逻辑操作。无论如何,我遇到了php

echo '<script>show_info("my_text")</script>';

(show_info - 切换信息 div 并显示我的文本的 js 函数)。如果一切顺利,DB 将传输

echo 'ok';

我的ajax成功

success: function (data) {
  if (data == "ok") {
    document.write ("It's work!");
  };
}

但不幸的是,它不起作用。也许有必要以某种方式将数据分成两部分,脚本和其他文本。

4

1 回答 1

2

您正在将响应作为响应直接发送到服务器echo '<script>show_info("my_text")</script>';。因此,data不会评估为“好的”。

相反,您应该发回一个数组:

$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);
        }
    }
});
于 2013-10-15T17:48:51.250 回答