我正在尝试将多个数组传递给我的脚本,然后我将在数据库中插入这些数组值。在Branches_Control.php
中我想将这些数组值保存在PHP变量中,然后将它们传递给我的模型并循环遍历该PHP数组变量以插入
他们在DB。
这是我的AJAX请求:
var finalplaces = [];
var finallongArr = [];
var finallatArr = [];
var finalphone = [];
var finalcompanyName = [];
for (var i = 0; i < places.length; i++) {
if (finalplaces[i] != null) {
finalplaces[i].push(places[i])
finallongArr[i].push(longitudeArr[i]);
finallatArr[i].push(latitudeArr[i]);
finalphone[i].push(phone[i]);
finalcompanyName[i].push(companyName[i]);
}
}
$.ajax({
type: 'POST',
url: "Branches_Control.php",
data: "Places=" + finalplaces +
"&longitudeArr=" + finallongArr +
"&latitudeArr=" + finallatArr +
"&phones=" + finalphone +
"&companyNames=" + finalcompanyName,
success: function(data) {
alert(data + "Succese");
document.getElementById("asd").innerHTML = data;
}
});
我想在Branches_Control.php中做什么
$places = $_POST['Places'];
echo $places[0];
有谁能告诉我为什么这不起作用?
答案 0 :(得分:2)
你的错误就在这里:
data: "Places=" + finalplaces +
"&longitudeArr=" + finallongArr +
"&latitudeArr=" + finallatArr +
"&phones=" + finalphone +
"&companyNames=" + finalcompanyName,
如果以字符串形式发送数据,则必须使用这些数组进行字符串化,例如:
"&longitudeArr=" +JSON.stringify(finallongArr )
然后在服务器端你必须进行json解码:
$longitudeArr= json_decode($_POST['longitudeArr'])
或者更简单地使用jquery power,你可以像对象一样传递数据:
data:{longitudeArr:finallongArr , latitudeArr: finallatArr , phones: finalphone .....}
这最后一种方法的优点是在php网站上,你立刻得到了数组:
$longitudeArr= $_POST['longitudeArr'] //this is an array
尝试。
答案 1 :(得分:1)
在您的代码中:
var finalplaces = [];
for (var i = 0; i < places.length; i++) {
if (finalplaces[i] != null) {
finalplaces[i].push(places[i])
}
}
条件if (finalplaces[i] != null)
不能是true
因为数组是空的,所以你永远不会填充数组。
我想你想要反转测试:{{1 }}