0

ローカライズ文字列がphpファイルに保存され、get_string()関数を使用してphpでローカライズされた値を取得するjavascriptでローカライズを使用しようとしています。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));

そして、このphpスクリプトから値を取得するJavaScriptのスクリプト:-

            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

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 に答える
0

jQuery のどのバージョンを使用していますか?

API docにはparseJSON、v1.4.1 で追加されたと記載されています。古いバージョンを使用していないことを確認してください。

于 2012-12-10T09:34:42.177 に答える