【问题标题】:$getJSON not being recognized as an array$getJSON 未被识别为数组
【发布时间】:2010-11-27 22:22:30
【问题描述】:

我正在尝试使用 jQuery 的 $getJSON 发送“id”数组。这是我的 jQuery 的样子:

var calendarIds = [];
    $("#jammer :selected").each(function(i, selected){
    calendarIds[i] = $(selected).val();
    });

    $.getJSON("test.php", {
      start: start.getTime() / 1000,
      end: end.getTime() / 1000,
      calendarid: calendarIds
                         },  
            function(a) {
      callback(a);
    });

而且,当我使用 Firebug 检查时,它显示正在传递多个值:例如,

  http://mydomain.com/test.php?calendarid=3&calendarid=4

但是,当我尝试使用以下方法加入这个所谓的数组时:

$comma_separated = join(",", $_GET['calendarid']);

echo $comma_separated;

我明白了:

  Warning: join() [function.join]: Invalid arguments passed

而且,如果我只是回显 $_GET['calendarid'],我会得到,它只会回显传递的最后一个 id,例如:

 echo $_GET['calendarid'];   //echos "4"

关于我做错了什么有什么想法吗?谢谢!

【问题讨论】:

    标签: php jquery arrays json


    【解决方案1】:

    回复您对 Mauris 的回答的评论:
    在您要发送的参数对象中使用它:

    "calendarid[]": calendarIds //
    

    代替:

     calendarid = calendarIds
    

    【讨论】:

    • +1 表示支持。谢谢。没有意识到我需要引号。 :-/
    • 引号是必需的,只是为了放置“[]”。通常,如果您不加引号,则可以使用 Javascript。但在这种情况下,您需要“[]”,因此需要引号。
    【解决方案2】:

    网址应该是

    http://mydomain.com/test.php?calendarid[]=3&calendarid[]=4
    

    为了让 PHP 将 $_GET['calendarid'] 解析为 PHP 数组。

    一旦你把它设置为正确的 URL,你就可以在 PHP 中正确使用 join()。

    【讨论】:

    • 感谢您的回复:那么,将 $.getJSON 与 jQuery 一起使用,我该如何告诉它发送一个数组?我试过这样做: $.getJSON("test.php", { start: start.getTime() / 1000, end: end.getTime() / 1000, calendarid[]: calendarIds },但是,有括号([ ]) 在 calendarid 导致 javascript 错误之后。对此有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多