在Javascript中,我正在为用户列表创建数组

var dataArr = [];
 $("#sortable li").each(function(idx, elem) {
    dataArr[idx] = $(elem).html();
});
alert(dataArr[0]);


这将按预期方式工作,并将提醒列表中的第一项。 “坦率”或任何形式。

$.ajax({
url: "fiddle.php",
type: "POST",
data: "dataArr="+dataArr,
success: function(response) {
alert(response);}


我将此数组发送给PHP,而ajax测试确认从另一侧的var_dump中检索到该数组。

echo ($_POST['dataArr'][1]);


在尝试输出特定项目时,这里会出现问题,在这种情况下,第二个项目可能是“ John”,它将在第一个项目“ r”中输出第二个字符。这出现在Ajax测试窗口中。我正在寻找整个词。
是语法错误还是数据传递方式有问题?

最佳答案

我认为问题与您如何在ajax调用中发送数据有关。

尝试这个:

JS

var dataArr = [];
 $("#sortable li").each(function(idx, elem) {
    dataArr[idx] = $(elem).html();
});


$.ajax({
    url: "fiddle.php",
    type: "POST",
    data: dataArr, //Send just the array
    success: function(response) {
        alert(response);
    }
});


的PHP

var_dump($_POST['dataArr']);

10-01 20:52