Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从javascript检索后,PHP数组中只返回1个字符,而不是整个单词_Php_Javascript_Ajax_Arrays - Fatal编程技术网

从javascript检索后,PHP数组中只返回1个字符,而不是整个单词

从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

在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_转储中检索到的

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
进行解码