[英]How to send an array of objects to PHP with Ajax and update the MySQL server
我有這個對象數組:
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);
}
我有一個 MySQL 表,其中包含desk_id
、 desk_name
、 desk_x
和desk_y
列。 當我單擊一個按鈕時,我想用 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);
發送時需要對數組進行字符串化。
JS
$("#btn").click(function() {
$.ajax({
method: "POST",
url: "phpfile.php",
data: { "desks" : JSON.stringify(desks) }
})
});
PHP
$desks = json_decode($_POST["desks"]);
foreach($desks as $key => $value) {
$sql = "UPDATE desks SET desk_x=".$value->x.",desk_y=".$value->y." WHERE desk_id=".$value->id;
$conn->query($sql);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.