javascript - 使用 javascript 和 ajax 将多个对象发送到 php

标签 javascript php jquery ajax

我已经创建了代码,该代码采用 JavaScript 将对象从一个网页发送到另一个网页。 我使用 Ajax 和 POST 方法来发送对象,目前我在第二页上使用 POST 来获取 PHP 中的数据并将其发送回数据库。 目前,当我尝试发送一个对象时它可以工作,但我正在尝试找到一种一次性发送多个对象的方法。

我正在尝试使用 for 循环,我循环遍历包含对象的数组并尝试一次发送一个。 目前只有数组中的第一项进入数据库,我不确定为什么。

下面是使用Ajax发送的代码:

        for (i = 0; i < objSend.length; i++) {
            //objSend is the array containing the objects
            console.log("i",i);
            console.log(objSend[i]);

            $.ajax({
                async: false,
                type: "POST",
                url : "map_process_test.php",
                data: objSend[i],
                success : function(data){
                    console.log("Sent/Done");
                },
                error: function(xhr,ajaxOptions,thrownError){
                    alert(thrownError);
                }

            });


        }

控制台每次都会返回“Sent/Done”,但在数据库中找不到其他内容。 下面是第二页接收数据的代码

$lat = $_POST["pin_lat"];
    $lng = $_POST["pin_lng"];
    $pin_id = $_POST["pin_id"];
    $pin_number = $_POST["pin_number"];
    $pin_text = $_POST["pin_text"];
    $pin_title = $_POST["pin_title"];
    $project_id = $_POST["project_id"];


    $results = mysql_query("INSERT INTO tbl_project_coords(pin_id, pin_number, pin_lat, project_id, pin_lng, pin_title, pin_text) VALUES ('$pin_id','$pin_number','$lat','$project_id','$lng','$pin_title','$pin_text')");
    echo("DONE 2 ");

我尝试过将 Async 设置为 true 和 false,但两者都没有产生任何影响。 感谢您的帮助

最佳答案

您必须调整后端代码才能正确循环结果,但我认为您可以一次性发送整个对象:

data: { 'everything': objSend },

这将为您提供一个可以循环的多维 $_POST['everything'] 数组,类似于您为表单元素指定名称,例如 name="my_name[键1][键2]"

您当然也可以将整个包作为字符串发送并在服务器上解析:

 data: { 'json': JSON.stringify(objSend) },

然后您可以使用诸如 json_decode($_POST['json']) 之类的方法恢复原始结构。

关于javascript - 使用 javascript 和 ajax 将多个对象发送到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30463567/

相关文章:

javascript - angular2,typescript peer 无效,无法导入模块

php - 如何从表单中获取值(symfony 1.4)

php - 如何在 mysql 语句中使用多个 WHERE 和 OR

jquery - Google Closure 中的外部 jQuery 编译了 JS?

javascript - 如何在新选项卡中打开特定菜单 div

javascript - 无法从 .resize() 中调用 jQuery 函数

javascript - Jquery Javascript 函数未定义

php - 在 Laravel 数据表中添加 HTML 属性

php - 如何使用 jQuery 发出 POST json 请求?

javascript - 使用 JSON.stringify 引用值