我正在尝试将多个数组传递给我的脚本,然后从那里将这些数组值插入数据库中。Branches_Control.php
我想将这些数组值保存在 PHP 变量中,然后将它们传递给我的模型并循环遍历该 PHP 数组变量以插入他们在数据库中。
这是我的 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];
谁能告诉我为什么这不起作用?
你的错误在这里:
data: "Places=" + finalplaces +
"&longitudeArr=" + finallongArr +
"&latitudeArr=" + finallatArr +
"&phones=" + finalphone +
"&companyNames=" + finalcompanyName,
如果您以字符串形式发送数据,则必须将这些数组字符串化,例如:
"&longitudeArr=" +JSON.stringify(finallongArr )
然后在服务器端,您必须进行 JSON 解码:
$longitudeArr= json_decode($_POST['longitudeArr'])
或者更简单地说,使用 jquery 功能,您可以将数据作为对象传递,这样做:
data:{longitudeArr:finallongArr , latitudeArr: finallatArr , phones: finalphone .....}
最后一种方法的优势是,在 PHP 站点上,您可以立即拥有数组:
$longitudeArr= $_POST['longitudeArr'] //this is an array
尝试。
在你的代码中:
var finalplaces = [];
for (var i = 0; i < places.length; i++) {
if (finalplaces[i] != null) {
finalplaces[i].push(places[i])
}
}
条件 if (finalplaces[i] != null)
无法true
,因为数组为空,因此您永远不会填充数组。
我猜你想颠倒测试:if (finalplaces[i] == null)