将JSON中的数组传递给javascript

时间:2011-08-24 18:42:31

标签: javascript json

我在stackoverflow上进行了搜索,并没有找到我正在寻找的确切内容。

我使用的是内部服务器端语言,如PHP。我在网页上有两个下拉菜单A和B. B根据来自A的输入从数据库中填充值。简单的问题对吗?因此我甚至在A上触发onchange并调用一个javascript函数,该函数对服务器端代码进行后Ajax调用。这个服务器端代码应该执行查询并将结果返回给responseHandler,它应该将结果作为发布数据提供给B.我遇到的问题是服务器端代码,当我执行查询时,我得到一堆行阵列。如何将该数组传递给Javascript responseHandler?我试图发送的是JSON,但没有取得多大成功。以下是服务器端代码:

// If - then - else , !, query, and get are functions in the language
{if {! {query output post get_data_qry_str}}{then
    //JSON object
   {
      "status":"error",
      "errorMessage":"Query did not succeed"
   }
}{else
   //JSON Object
   {
      "status":"success",
      "successMessage":"how do I pass output here ?"
   }
}}

output.values={1,2,3}

如果我说{get output}它传递“”,如果我说{get output.values}它传递1。 如果我应该更清楚地说明服务器端语言的语法,请告诉我。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

所以在阅读了@Hyangelo评论之后,我编写了自己的序列化函数。我以为我会把它放在这里以防其他人想要看到它。以下是成功部分的JSON

{
   "status":"success",
   "successMessage":"[
       // for, length, get, set are functions here
       {for x=0 to {length output} do
          {get comma}
          "{get output.values[x]}"
          {set comma ,}
       }
    ]"
}

我还了解到,在Javascript中,将数组作为post_data发送到后Ajax调用,你可以这样做,

for(var i=0; i < arr.length; ++i)
{
   post_string += '&values=' + arr[i];
}

instead of 

post_string = '&values=' + arr;

这可能是微不足道的,但我是JS的新手并且花了一些时间来计算..谢谢@Hyangelo 抱歉无法发布回复,直到8小时..