javascript - 如何使用 Ajax 将对象数组发送到 PHP 并更新 MySQL 服务器

标签 javascript php jquery mysql ajax

我有这个对象数组:

var desks = [];

function Desk(id, name, x, y) {
    var desk = {};
    desk.id = id;
    desk.name = name;
    desk.x = x;
    desk.y = y;
    desks.push(desk);
}

我有一个包含 desk_iddesk_namedesk_xdesk_y 列的 MySQL 表。 当我单击一个按钮时,我想用 Desk 对象更新表中的值。

这基本上是我正在努力实现的目标:

JS

$("#btn").click(function() {
    $.ajax({
        method: "POST",
        url: "phpfile.php",
        data: desks
    })
});

PHP

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    require "../db.php";

    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $desks = $_POST("desks");
    for($i = 0; $i < sizeof($desks); $i++) {
        $sql = "UPDATE desks SET desk_x=$desks[i]->x WHERE desk_id=$desks[i]->id";
        $conn->query($sql);
        $sql = "UPDATE desks SET desk_y=$desks[i]->y WHERE desk_id=$desks[i]->id";
        $conn->query($sql);
    }
    $conn->close();
}
?> 

不知道有什么问题。感谢您的帮助。

最佳答案

这样做
JS

$("#btn").click(function() {
    $.ajax({
        method: "POST",
        url: "phpfile.php",
        data: {desks:desks}
    })
});

PHP

$desks = $_POST("desks");
$sql = "UPDATE desks SET desk_x=$desks->x,desk_y=$desks->y WHERE desk_id=$desks->id";
$conn->query($sql);

关于javascript - 如何使用 Ajax 将对象数组发送到 PHP 并更新 MySQL 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45036734/

相关文章:

javascript - 使用 jQuery 动态更改对象参数

javascript - 如何设置日期范围选择器的最小日期范围限制

php - 如何从 php cli 回显退格?

php - 使用 session 时在 xampp 上可能导致 ERR_CONNECTION_RESET 错误的原因

javascript - 使用jquery获取单条记录

javascript - 如何在不重新加载页面的情况下填充div

Javascript::firstChild 的 textContent/innerText

javascript - 使用javascript在动态表中手动触发点击事件

javascript - Jquery Calendar - .attr ('id' ) 得到错误的值

php - 如果表 2 中有值,则仅显示对数据库表 1 的 sql 查询结果