【问题标题】:json_encode with multidimensional array returning string "array" instead of datajson_encode 与多维数组返回字符串“数组”而不是数据
【发布时间】:2012-07-31 16:27:46
【问题描述】:

我正在使用 json、jquery 和 ajax 将一个多维数组传回一个 .php 文件。我的目标本质上是用多个条目填充一个下拉框(id=project)。这是一些代码sn-ps:

$("#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);

我的问题是,这是返回字符串“数组”。

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

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

【问题讨论】:

    标签: javascript jquery multidimensional-array json


    【解决方案1】:

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

    【讨论】:

    • 嗯,这样做确实消除了“数组”问题,但只返回查询的最后一个元素。这是为什么呢?
    • 谢谢,这是我遇到的一个严重问题!
    猜你喜欢
    • 2020-06-20
    • 1970-01-01
    • 2022-10-06
    • 2011-09-20
    • 2019-08-20
    • 2016-09-28
    • 2013-05-16
    • 1970-01-01
    • 2019-01-19
    相关资源
    最近更新 更多