json_encode与多维数组返回字符串“数组”而不是数据

时间:2012-07-31 16:27:46

标签: javascript jquery multidimensional-array json

我使用json,jquery和ajax将多维数组传递回.php文件。我的目标主要是用多个条目填充下拉框(id = project)。这是一些代码片段:

$("#turninId").change(function() {

        var user_id = $("#turninId").val();

        $.ajax ( {
          url:"send_input.php",
          type: "POST",
          dataType: "json",
          data:{id_selection: user_id},
          success:function(response) {

            for (var i=0; i<response.proj.length; i++) {
              $("#exp").html(response.proj[i]);
              $("#project").html(response.proj[i]); } });

     });

在send_input.php(后端)中,我查询数据库,并将信息发送到数组。然后我使用json_encode。

$query="SELECT project FROM main";
$results = $db->query($query);
while ($row_id = $results->fetchArray()) {
       $proj_option[] = "<option value=\"".$row_id['project']."\">".$row_id['project']."</option>\n";
           $pselected=$row_id['project'];
}
$output = array( "proj" => "$proj_option");
echo json_encode($output);

我的问题是这是退回STRING“数组”。

例如,如果我这样做:response.proj[0],我会返回“A”。

是什么给出的?我见过一些人对这个错误有疑问,但没有明确的解决方案。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

这是因为您通过将其括在引号中来将$proj_option强制转换为字符串。只需删除引号即可获得数组。