0

我正在尝试在 javascript 中使用本地化,其中本地化字符串存储在 php 文件中,get_string() 函数用于获取 php 中的本地化值。我写了一个名为 alertpopup.php 的脚本

$alertmessage = $_POST['msg'];

switch($alertmessage)
{
    case '1':
        $alertmessage = get_string('first');
        break;
    case '2':
        $alertmessage = get_string('second');
        break;
    case 'deletecomment':
        $alertmessage = get_string('random');
        break;  
}

echo json_encode(Array('Message' => $alertmessage));

和一个 javascript 脚本从这个 php 脚本中获取价值:-

            var answer;
        $.ajax( {
        type: "POST",
        data: "msg=1",
        url: "alertpopup.php",
        success: function(data) {
        var alertmsg = $.parseJSON(data);

            if (alertmsg.Message != null) {
                answer = confirm(alertmsg.Message);
                document.location.reload();
            }

        }
       });
        if(answer) {
                     something
                }
                else{
                    something else
                }

但是,我不断收到错误:- Uncaught TypeError: Object function (E,F){return new o.fn.init(E,F)} has no method 'parseJSON'

有人可以帮我解决这个问题吗?

4

3 回答 3

0

您使用的是什么版本的 jQuery?

API 文档说明在parseJSONv1.4.1 中添加。确保您没有使用旧版本。

于 2012-12-10T09:34:42.177 回答
0

因为您在 json 中获得了 ajax 调用的结果...您不需要在那里解析 json...

删除parseJson()并尝试

更新

var answer;
    $.ajax( {
    type: "POST",
    data: "msg=1",
    dataType: "json",   //added
    url: "alertpopup.php",
    success: function(data) {

        if (data.Message != null) {
              if (confirm(data.Message)) {
                   something
               }else{
                   something else  
               }
            document.location.reload();
        }

    }
于 2012-12-10T09:41:12.180 回答
0

尝试替换以下代码

var alertmsg = $.parseJSON(data);

var alertmsg = jQuery.parseJSON(data);

编辑:

或者

上学日方法:)

var alertmsg = eval(data);

由于某些安全性或类似的原因,有些人可能不同意这一点,但请尝试一下。

于 2012-12-10T09:35:51.273 回答