您应该使用AJAX为(尽管它也适用于来回重定向...)。 做这样的事情,而不是:
$("#updateStatus").click(function(){
$.ajax({
url: "connections/updateStatus.php"
});
});
对于它仅更新特定行,你必须通过在该行的ID。您的更新查询只会将表中的所有行更新为“绿色”。您可以通过ID作为参数,并阅读它在PHP与$id = $_POST["id"]
如果你张贴者:
$.ajax({url: "connections/updateStatus.php", method: "POST", data: { id: 4 }});
您可以读取和更新它在PHP中,如:
public function redtoGreen(){
$id = intval($_POST["id"]);
$query2 = "UPDATE uploads SET status = 'green' WHERE id = $id";
$this->conn->query($query2);
}
另一句话:考虑使用准备好的语句。像这样的SQL查询不是很好的风格。你宁愿想是这样的:
public function redtoGreen(){
$id = $_POST["id"];
$stmt = $db->prepare ("UPDATE uploads SET status = 'green' WHERE id = ?");
$stmt->execute($id);
}
您也可以建立在AJAX查询,以改变该行的颜色不重装,做这样的事情:
$.ajax({
url: "connections/updateStatus.php",
method: "POST",
data: { id: rowno },
success: function (result) {
$("#myrow-" + rowno).css('background-color', 'green');
}
});
但是,看到你只有一个按钮(#updateStatus)更新所有行我认为你在这里有几个问题。如果每行都有按钮,则会出现冲突的ID。
要同时获得rowno和正确的按钮引用,你可以定义你的按钮是这样的:
<button class="updateStatus" data-rowno="1"></button>
在构建表,你将不得不把行号,其中1。 然后,你可以做的JavaScript部分是这样的:
$(document).ready(function() {
$(".updateStatus").click(function() {
var el = $(this);
var rowno = el.data("rowno");
$.ajax({
url: "connections/updateStatus.php",
method: "POST",
data: { id: rowno },
success: function (result) {
$(el).parent().css('background-color', 'green');
}
});
});
});
测试,与HTML就像
<table>
<tr><td style="background-color:red;">Blah <button class="updateStatus" data-rowno="1">Update</button></td></tr>
<tr><td style="background-color:red;">Blah <button class="updateStatus" data-rowno="2">Update</button></td></tr>
<tr><td style="background-color:red;">Blah <button class="updateStatus" data-rowno="3">Update</button></td></tr>
<tr><td style="background-color:red;">Blah <button class="updateStatus" data-rowno="4">Update</button></td></tr>
<tr><td style="background-color:red;">Blah <button class="updateStatus" data-rowno="5">Update</button></td></tr>
</table>
使用一个ID每格。现在你引用所有这些,你想让我发表一个完整的例子吗? – McStuffins
@McStuffins是的,我知道即时选择所有这些,但我无法弄清楚我将如何为每一个单独做。我的头脑中有这个概念,但是代码丢失了。我会很感激,如果你做 –
你在后端使用了一些PHP框架吗? –