我有以下已嵌入PHP的html代码
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if (!$row['archived']) {
echo "<tr id='" . $row['request_id'] . "'>
...
<button class='btn btn-warning archive'>Archive</button></br>
我已经建立了以下JavaScript文件
$(document).ready(function() {
"use strict";
$(".archive").click(function() {
$.ajax({
type: 'POST',
url: '../_php/functions.php',
data: {'archive': $(this).parent().parent().attr('id')},
success: function() {
window.alert("done");
},
error: function() {
window.alert("could not update");
}
});
});
});
我正在使用此php文件构建“功能”以进行数据管理
<?php
require "connect.php"; // get connected to database.
$archive = "UPDATE requests SET archived='1' WHERE request_id='$id'";
if ($_POST['function'] == 'archive') {
if ($conn->query($archive) === TRUE) {
echo "Record " . $id . " has been archived.";
} else {
echo "Error: " . $conn->error;
}
} else if ($_POST['function'] == 'view') {
}
?>
我已经对此进行了测试,并且希望它能向我显示成功消息,并且还将相应记录的“存档”值从0更改为1(或从false更改为true)。我看到成功消息,但是即使刷新后,我的记录仍会保留在屏幕上,并且我的数据库无法反映出从false到true(或从0到1)的更改。我想知道我是否想念一些东西。
我认为问题是您没有使用id
与ajax一起传递的未正确使用的functions.php
。实际上,您通过了request_id
as,archive
但没有使用它。
在您的代码中,$archive = "UPDATE requests SET archived='1' WHERE request_id='$id'"
但$id
未定义。
<?php
require "connect.php"; // get connected to database.
/* make sure that archive button is clicked */
if (isset($_POST['archive']) ) {
/* Get the id here*/
$id = $_POST['archive'];
$archive = "UPDATE requests SET archived='1' WHERE request_id='$id'";
if ($conn->query($archive) === TRUE) {
echo "Record " . $id . " has been archived.";
} else {
echo "Error: " . $conn->error;
}
} else if ($_POST['function'] == 'view') {
}
?>
还可以使用检查工具来检查您的网络,以便检查从functions.php返回的响应。另外,请检查控制台是否存在任何JavaScript错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句