2009-05-21 90 views
0

有誰知道我可以返回的JavaScript變量,而我使用Ajax調用PHP到阿賈克斯,而不是字符串值。請參見下面的示例瞭解詳情:如何將JavaScript變量返回給Ajax?

阿賈克斯:

//Ajax Param 
    var paramList = "Action=make_process"; 

    ajaxRequest = $.ajax({ 
      url: "admin.php", 
      type: 'POST', 
      data: paramList, 
      error: function(){ 
        //error message here 
      }, 
      success: function(data){ 
       //read return javascript variable here; 
      } 
     }); 

PHP:

public function validationChk() 
    { 
     $error_msg['error_msg'][] = array("msg"=>"hello"); 
      $error_msg['error_msg'][] = array("msg"=>"hi"); 

     echo "var ErrorMapping = " . json_encode($error_msg). ";\n\n";   
     exit; 
    } 

回答

1

你想知道如何從一個Ajax響應返回?

然後檢查this jQuery FAQ answer.

+0

我想知道如何將'var ErrorMapping'從php傳遞給ajax作爲變量而不是字符串 – 2009-05-21 02:36:38

0

什麼你想要做的是不是所有的偉大的想法。你可能需要的是JSON響應從成功回調中回到對象進行解碼,然後返回

解碼JSON字符串包括管道通過它的eval,希望你沒有壞/惡意數據。這樣做的安全方法是解析JavaScript中的JSON。如果你去你自己的路線,那麼至少應該嘗試使用已經寫好的東西。在Google Code中搜索「json-sans-eval」。

更好的選擇是使用jQuery的內置功能:

jQuery.getJSON(url, [data], [callback]) 

它所有硬的東西給你。花一些時間閱讀jQuery的文檔。那裏有很多有用的東西。

+0

請注意,jQuery的getJSON()使用eval()來解碼JSON。 – Javier 2009-05-21 03:07:24

相關問題