问题
我想要对PHP脚本执行ajax请求,但是我在将数据转换为PHP期望的格式时遇到问题,PHP期望数据作为数组内的数组进入,例如,< / p>
Array
(
[cv_file] => Array
(
[849649717] => Y
[849649810] => Y
)
[save] => Save CVs
)
我尝试了什么?
我已经尝试在我的javascript中创建一个空数组并将其用作数组键,就像这样,
var cv_file = new Array();
$(".drag_check").draggable({helper:"clone", opacity:"0.5"});
$(".searchPage").droppable({
accept:".drag_check",
hoverClass: "dropHover",
drop: function(ev, ui) {
var droppedItem = ui.draggable.children();
cv_file = ui.draggable.children().attr('name');
var link = ui.draggable.children().attr('name').substr(ui.draggable.children().attr('name').indexOf("[")+1, ui.draggable.children().attr('name').lastIndexOf("]")-8)
$.ajax({
type:"POST",
url:"/search",
data:cv_file+"&save=Save CVs",
success:function(){
alert(cv_file)
$('.shortList').append('<li><input type="checkbox" value="Y" class="checkbox" name="remove_cv['+link+']"/><a href="/cv/'+link+'">'+link+'</a></li>');
},
error:function() {
alert("Somthing has gone wrong");
}
});
}
});
我的问题
如何将数据转换为PHP所期望的格式,我将不胜感激任何人都能给予的帮助?
修改
在警告评论中的海报提示我让他跟随时,
cv_file[849649717]&save=Save CVs
谢谢
答案 0 :(得分:1)
要在后端PHP文件中的PHP数组中获取结果,您需要创建一个类似于以下的字符串以POST回服务器:
cv_file[]=849649717&cv_file[]=849649810&save=Save CVs
我认为你不能使用这种方法创建一个关联数组,但上面应该给你一个像$_POST
中的以下数组:
Array
(
[cv_file] => Array
(
0 => 849649717
1 => 849649810
)
[save] => Save CVs
)
然后你可以做一个foreach:
foreach ($_POST['cv_file'] as $cv)
{
// Do something with $cv;
}
答案 1 :(得分:0)
您可以对您的数组/对象进行字符串化,然后在PHP端执行json_decode以将字符串转换回数组。
编辑:现在使用正确的PHP函数。
答案 2 :(得分:0)
使用$(form).serializeArray()来构建POST数据的数组。 serializeArray API doc