2009-05-21 79 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

相关问题