我对ajax很新,我无法解决这个问题,我找不到其他讨论它的话题。
我要做的是用ajax数组发送到php脚本
该数组是一个关联数组 [index] [value] 。问题是,一旦我将数组发送到php,它就像是一个单维数组。
换句话说,一个例子:
如果数组是:[“apple”,“pear”,“orange”]
应该是:array [0]打印“apple”
但是在php中,数组只包含一个元素,这是所有字符串的串联。因此,如果我打印数组[1],我将获得“p”,数组[4]“e”等 我该如何解决?
提前感谢您的帮助。
var items = new Array();
CODE AJAX SCRIPT:
$.ajax({
type: "POST",
url: "calculate.php",
data: "items=" + items,
dataType: "html",
success: function(msg)
{
var response = jQuery.parseJSON(msg);
$('#second_results').html(response.output);
},
error: function()
{
alert("Failed");
}
});
PHP:
$items = $_REQUEST["items"];
答案 0 :(得分:0)
你有几个选择。 其中我提出了其中的2个。
1)
用逗号分隔参数并用逗号分隔。
// ...
data: "items=" + item1 + "," + item2 + "," item3,
// ...
$items = explode(',', $_REQUEST['items']);
2)
使用其他表示法:
// ...
data: "items[0]=" + item1 + "&items[1]=" + item2 + "&items[2]=" + item3,
// ...
$items = $_REQUEST['items'];
虽然我没有测试过,但它应该可以正常工作。 :)
你也可以看一下:Parse query string into an array让php处理正确的转换。
答案 1 :(得分:0)
这里还有各种方法:Pass array to ajax request in $.ajax()。这里还有一个很好的注释示例http://www.islandsmooth.com/2010/04/send-and-receive-json-data-using-ajax-jquery-and-php/
答案 2 :(得分:0)
将此传递给ajax调用的数据:
var a = {};
a["key1"] = "val1";
a["key2"] = "val2";
a["key3"] = "val3";
$.ajax({
type: "POST",
url: "calculate.php",
data: a ,
dataType: "html",
success: function(msg)
{
var response = jQuery.parseJSON(msg);
$('#second_results').html(response.output);
},
error: function()
{
alert("Failed");
}
});
在Php Side:
if($_SERVER["REQUEST_METHOD"]=="POST")
{
foreach($_POST as $key=> $val){
echo $key."and".$val;
}
die();
}
答案 3 :(得分:0)
$.ajax({
type: "POST",
url: "calculate.php",
data: {items:items},
dataType: "html",
success: function(msg)
{
//your code if call succeeds
},
error: function()
{
//alert("Failed");
}
});
请注意,您使用传递数组的方式不对,摆脱+和=符号并使用:相反,希望它有所帮助!