如何使用jQuery发布数组,以便在PHP文件中使用该数组?
我有以下jQuery代码:如何使用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
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/