2015-04-18 75 views
1

我必須在這裏做一些愚蠢的事情。 我有這個PHP文件:PHP數組到json

$arr = array("result" => "dasdasds;bks fjsdgjdklsds j&*", "text" =>"23 + 2 =   ?"); 

echo json_encode($arr); 

而且我把它在我的js文件:

/* 
    * PHP array to json 
    */ 

    $("#jsonform").submit(function(e){ 

     $.ajax({ 
      url:"/phparraytojson/Helper.php", 
      success: function(data){ 
      console.log(data.result) //undefined 
      console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
      } 

     }) 
     e.preventDefault(); 
    }) 
+0

究竟什麼是你的錯誤?你不介意在你的問題中增加更多信息嗎? –

+1

use dataType:「json」, – Saty

+0

當調用data.result時,我得到未定義的 –

回答

1

添加數據類型: 「JSON」 要解決這個問題:

$.ajax({ 
     url:"/phparraytojson/Helper.php", 
     dataType: "json", 
     success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
     } 

    }) 
+1

繁榮,這個工作 –

1

在Ajax調用你必須添加你從php接收的輸出格式。即: dataType:"json"

$("#jsonform").submit(function(e){ 

    $.ajax({ 
     url:"/phparraytojson/Helper.php", 
     dataType:"json",    //Dont miss to add 
     success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?"} 
     } 

    }) 
    e.preventDefault(); }); 
+1

這個版本似乎並沒有工作,雖然加引號 –

1
you should be use datatype:'json' in ajax call 
$.ajax({ 
    url:"/phparraytojson/Helper.php", 
    async: false, 
    dataType: 'json', 
    success: function(data){ 
     console.log(data.result) //undefined 
     console.log(data); //{"result":"dasdasds;bks fjsdgjdklsds j&*","text":"23 + 2 =   ?" 
        } 
    } 

});