从javascript检索后,PHP数组中只返回1个字符,而不是整个单词
在Javascript中,我为用户端列表创建了一个数组从javascript检索后,PHP数组中只返回1个字符,而不是整个单词,php,javascript,ajax,arrays,Php,Javascript,Ajax,Arrays,在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, su
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_转储中检索到的
echo ($_POST['dataArr'][1]);
当试图输出一个特定项目时,这里会出现问题,在这种情况下,第二个项目可能是“John”,它将在第一个项目“r”中输出第二个字符。这将出现在Ajax测试窗口中。我在找整个词。
这是语法错误还是数据传递的问题?我认为问题与ajax调用中如何发送数据有关 试试这个: JS PHP
我认为问题与如何在ajax调用中发送数据有关 试试这个: JS PHP
这是因为数组正在转换为字符串形式 在客户端执行
JSON.stringify()
,在服务器端执行JSON\u解码
像
在ajax调用中
data: "dataArr="+JSON.stringify(dataArr),
在php代码中
$dataArr = json_encode($_POST['dataArr']);
var_dump($dataArr);
这是因为数组正在转换为字符串形式
在客户端执行JSON.stringify()
,在服务器端执行JSON\u解码
像
在ajax调用中
data: "dataArr="+JSON.stringify(dataArr),
在php代码中
$dataArr = json_encode($_POST['dataArr']);
var_dump($dataArr);
你并不是真的在发送数组。使用console.log(“dataArr=“+dataArr)
,或使用var\u dump
。你应该已经注意到了,或者var\u转储了什么给你?那dataStr
有什么好处?您最初想发送它吗?请尝试使用data:{dataArr:dataArr}
var_dump返回字符串(66)和以逗号分隔的一个接一个列出的所有元素。dataStr是用于其他用途的,我从原始问题中删除了它。您可以在客户端将数组编码为JSON,并在phpy中使用JSON\u decode
进行解码。您并不是真正发送数组。使用console.log(“dataArr=“+dataArr)
,或使用var\u dump
。你应该已经注意到了,或者var\u转储了什么给你?那dataStr
有什么好处?您最初想发送它吗?请尝试使用data:{dataArr:dataArr}
var_dump返回字符串(66)和以逗号分隔的一个接一个列出的所有元素。dataStr是用于其他用途的,我从原始问题中删除了它。您可以在客户端将数组编码为JSON,并在PHP中使用JSON\u decode
进行解码