如何使用jQuery发布数组,以便在PHP文件中使用该数组?

如何使用jQuery发布数组,以便在PHP文件中使用该数组?,php,jquery,ajax,Php,Jquery,Ajax,我有以下jQuery代码: function saveSchedule() { var events = []; $('ul#schedule-list').children().each(function() { events.push($(this).attr('value')); }); jQuery.each(events, function() { a

我有以下jQuery代码:

function saveSchedule()
{
    var events = [];

         $('ul#schedule-list').children().each(function() {
             events.push($(this).attr('value'));
         });

         jQuery.each(events, function()
         {
             alert(this);
         });


         $.post("schedule_service.php?action=save_schedule", 
         { events: events, studentid:  $('#student').val() }, 
         function(data) { 
             alert(data);
         }, 'json');   
     }
它从我页面上的列表中获取所有“值”,并将它们放入事件数组中

然后,在下面,我将该数组加上一个studentid传入$.post调用的数据部分

但是,当我在PHP端收到这个数组时,它似乎是一个单数值:

<?php

    include_once('JSON.php');
    $json = new Services_JSON();


    if ($_GET['action'] == 'save_schedule')
    {
        $event_list = $_POST['events'];

        echo $json->encode($event_list);
        exit;
    }
?>

(注意:我使用的是旧版本的PHP,因此是JSON.PHP库。)

现在,所有返回的都是“14”,这是事件数组中的最后一个事件

帖子:

答复:


我如何处理在$.post中传递数组的错误?

您可以将数组元素作为字符串传递,该字符串由一个字符连接的所有元素组成。然后,您可以在php代码中拆分数组并提取其中的值

使用连接数组的元素

连接(分隔符)

分离器:

指定一个字符串来分隔每个字符串 数组的元素。分离器是 如有必要,转换为字符串。如果 省略,数组元素为 用逗号分隔


在PHP端使用将**join()**ed字符串重新组合在一起。

为什么不使用JSON?将JavaScript数组作为JSON对象传递,并在PHP中对其进行解析。

这可能看起来很愚蠢,但请尝试以下方法:

$.post("schedule_service.php?action=save_schedule", 
         { 'events[]': events, studentid:  $('#student').val() }, 
         function(data) { 
             alert(data);
         }, 'json');

PHP将自动将键名
events[]
解析为PHP内部的实际数组

信不信由你,只要在
$中使用
'events[]':events
。发布
请求,而不是
events:events
(不带括号)。

回答得好@gnarf。如果不是我先测试的话,我会比你先找到答案;)+1@dcneiner-我99%确信它会工作,因为这是您用于
-但由于您测试了它,s/should/will/