【发布时间】:2021-12-16 06:26:38
【问题描述】:
我的页面已经有一个在进入时使用 select 语句填充的表格
<?php
$sql = "SELECT * FROM people WHERE isArchived = :zero ORDER BY addedAt DESC";
$stmt = $db->prepare($sql);
$stmt->bindValue(":zero", 0);
$stmt->execute();
?>
-------------------------------------------------------
<tbody>
<?php while ($row = $stmt->fetch()) {
$id = md5($row['personId']);
$lName = $row['lName'];
$fName = $row['fName'];
$mName = $row['mName'];
$suffixName = $row['suffixName'];
$gender = $row['gender'];
//and so on...
我想通过按下一个按钮来显示所有已归档的人(只需将 isArchived 从 0 设置为 1),但我不知道如何重新填充 while 循环(并依次显示新选择的数据)无需重新加载页面,因为每个 td 都有一个允许内联更新的脚本
<td><div contenteditable="true" onBlur="updateValue(this, 'lName', '<?php echo $id;?>')" onClick="activate(this)"><?php echo $lName; ?></div></td>
我试过了,但它不起作用。它到达 PHP 回显,但没有其他任何反应。
$('#display-archived').click(function(){
$.ajax({
method: "post",
url: "selectunarchivedpeople.php",
data: $('#table').serialize(),
dataType: "html",
success: function(php_result) {
console.log(php_result);
}
})
})
$sql = "SELECT * FROM people WHERE isArchived = :zero ORDER BY addedAt DESC";
$stmt = $db->prepare($sql);
$stmt->bindValue(":zero", 1);
if($stmt->execute()){
while ($row = $stmt->fetch()) {
$id = md5($row['personId']);
$lName = $row['lName'];
$fName = $row['fName'];
$mName = $row['mName'];
$suffixName = $row['suffixName'];
//and so on...
}
echo "Yup";
}
else {
echo "fail";
}
【问题讨论】:
-
构建一个查询结果数组,建议只选择你想要返回的内容,然后使用
$returns = $stmt->fetch_all(),然后从$results创建一个JSON字符串,如$returned = json_encode($results);,然后echo $results;这会将 JSON 字符串返回到success function(data){中data变量中的 JS 代码。它将是一个 javscript 对象,您可以对其进行处理以构建新表 -
或者,让 PHP 在文本变量中构建新的 HTML 表。
echo到 javascript,然后用简单的 Javascript 将表替换为新表