0

我正在尝试将多个数组传递给我的脚本,然后我将从那里将这些数组值插入数据库中。在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];

谁能告诉我为什么这不起作用?

4

2 回答 2

2

你的错误在这里:

   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

尝试。

于 2012-05-26T12:06:55.173 回答
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因为数组是空的,所以你永远不会填充数组。
我猜你想反转测试:if (finalplaces[i] == null)

于 2012-05-26T11:58:34.143 回答