使用MySQL和PHP删除页面上的项目
我不确定我应该走哪条路去做我想做的事情。该页面使用php从mysql数据库加载一些数据。我这样做是为了,对于在数据库中找到的每个值,都会生成一个复选框,该复选框的增量值从0开始,依此类推。我想做的是让这个复选框处于选中状态,这样当他们按下垃圾桶图标时,它就会从数据库中删除该行。我不确定的是如何在点击按钮时删除它,然后重新加载页面。最好的方法是什么?我不需要代码或任何东西,我只是想不出实现这一点的最佳途径使用MySQL和PHP删除页面上的项目,php,mysql,sql,Php,Mysql,Sql,我不确定我应该走哪条路去做我想做的事情。该页面使用php从mysql数据库加载一些数据。我这样做是为了,对于在数据库中找到的每个值,都会生成一个复选框,该复选框的增量值从0开始,依此类推。我想做的是让这个复选框处于选中状态,这样当他们按下垃圾桶图标时,它就会从数据库中删除该行。我不确定的是如何在点击按钮时删除它,然后重新加载页面。最好的方法是什么?我不需要代码或任何东西,我只是想不出实现这一点的最佳途径 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Print Run</title>
<style type="text/css">
.openRun{
width:500px;
}
.openRun th{
text-align:center;
background-color:#CCC;
}
</style>
</head>
<body>
<div>
<?php
$totals = 0;
$i = 0;
$companyName = "";
$quantity = "";
$cardSize = "";
$dateAdded = "";
require("serverInfo.php");
$printRun = mysql_query("SELECT * FROM `printRun` WHERE status = 'Open'");
$row = mysql_fetch_array($printRun);
echo 'Print Run #: ' . $row['Run'];
$result = mysql_query("SELECT * FROM `printRun` WHERE status = 'Open'");
while($row = mysql_fetch_array($result)){
$companyName[$i] = $row['Company'];
$quantity[$i] = $row['Quantity'];
$cardSize[$i] = $row['Size'];
$dateAdded[$i] = $row['Date'];
$totals = intval($row['Quantity']) + $totals;
$i++;
}
$arraySize = count($companyName);
echo '<table class="openRun">';
echo '<tr><th>Company</th><th>Quantity</th><th>Size</th><th>Date Added</th><th></th></tr>';
for($i = 0; $i < $arraySize; $i++){
echo '<tr>';
echo '<td>' . $companyName[$i] . "</td>";
echo '<td>' . $quantity[$i] . "</td>";
echo '<td>' . $cardSize[$i] . "</td>";
echo '<td>' . $dateAdded[$i] . "</td>";
echo '<td><input type="checkbox" name="box'. $i .'" value="'. $i .'" /></td>';
echo '</tr>';
}
echo '<tr>';
echo '<td style="font-weight:bold; border-style:solid; border-top-width:1px;">Totals</td>';
echo '<td style="font-weight:bold; border-style:solid; border-top-width:1px;">' . $totals . "</td>";
echo '<td></td>';
echo '<td></td>';
echo '<td><img src="images/trash.png" /></td>';
echo '</tr>';
echo '</table>';
mysql_close($link);
?>
<br />
</div>
</body>
</html>
打印运行
.openRun{
宽度:500px;
}
.openRun th{
文本对齐:居中;
背景色:#CCC;
}
如果表结构中有一个标识符,则可以将
<input type='checkbox' name='ids[]' value='<?php echo $row['id']; ?>' />
如果表结构中有一个标识符,则可以将
<input type='checkbox' name='ids[]' value='<?php echo $row['id']; ?>' />
有两种方法可以做到这一点。如果您不熟悉AJAX,或者害怕使用它,我建议您快速阅读一下,以获得概述
使用AJAX
如果不希望重新加载页面,则需要使用AJAX从服务器异步发送和接收数据。一个典型的例子是:
$('.trash_link').on('click', function() {
$.ajax({
url: 'path/to/script.php',
data: 'variable='+$('.input_class').val(),
dataType: 'html',
success: function(response) {
$('.container').html(response);
}
});
});
我建议的关键是将所有布局逻辑放在控制器或模型函数中,这样您就不会重复自己。当数据发送到服务器时,它可以使用此函数通过AJAX函数发回所有布局。然后可以在容器元素中插入HTML
没有AJAX
您在这里所做的就是提交一个表单,然后重新加载页面。因此,您需要确保已经在页面上指定了标记。这实际上取决于你希望你的页面有什么风格——有些人喜欢重新加载,有些人喜欢AJAX的无缝性。如果您选择省略AJAX,则需要以下内容:
$('.trash_link').on('click', function() {
$('form').submit();
});
如果您想:
$('.trash_link').on('click', function() {
if(confirm("Are you REALLY sure?") {
$('form').submit();
}
});
有两种方法可以做到这一点。如果您不熟悉AJAX,或者害怕使用它,我建议您快速阅读一下,以获得概述
使用AJAX
如果不希望重新加载页面,则需要使用AJAX从服务器异步发送和接收数据。一个典型的例子是:
$('.trash_link').on('click', function() {
$.ajax({
url: 'path/to/script.php',
data: 'variable='+$('.input_class').val(),
dataType: 'html',
success: function(response) {
$('.container').html(response);
}
});
});
我建议的关键是将所有布局逻辑放在控制器或模型函数中,这样您就不会重复自己。当数据发送到服务器时,它可以使用此函数通过AJAX函数发回所有布局。然后可以在容器元素中插入HTML
没有AJAX
您在这里所做的就是提交一个表单,然后重新加载页面。因此,您需要确保已经在页面上指定了标记。这实际上取决于你希望你的页面有什么风格——有些人喜欢重新加载,有些人喜欢AJAX的无缝性。如果您选择省略AJAX,则需要以下内容:
$('.trash_link').on('click', function() {
$('form').submit();
});
如果您想:
$('.trash_link').on('click', function() {
if(confirm("Are you REALLY sure?") {
$('form').submit();
}
});
如果你只是想要一个垃圾桶,当你点击它时,它会重新加载页面并删除项目,那么你只需要把这个图像放在一个链接中,通过id或者行的任何唯一标识符就可以了
<a href="/delete.php?id=<?= $row['id'] ?>">Delete</a>
如果你只是想要一个垃圾桶,当你点击它时,它会重新加载页面并删除项目,那么你只需要把这个图像放在一个链接中,通过id或者行的任何唯一标识符就可以了
<a href="/delete.php?id=<?= $row['id'] ?>">Delete</a>
您可能正在研究AJAX。您熟悉吗?您的问题不在于PHP,而在于如何让浏览器向服务器发送事件。您应该首先了解$\u GET
和$\u POST
变量是如何工作的,以及[处理表单]()和PHP的一般情况。基于您的示例代码,我认为它应该很快变得清晰。@e-bacho2.0-他可能应该使用AJAX,但他提到了页面重新加载,他的示例代码根本没有表单或输入,因此我认为他需要先了解简单HTTP请求的基础知识,然后才能变得更复杂。我知道javascript和像这样传递值,但我还没有深入研究AJAX和HTTPrequests@shinjuo:您熟悉表单和get/post值吗?您可能正在研究AJAX。您熟悉吗?您的问题不在于PHP,而在于如何让浏览器向服务器发送事件。您应该首先了解$\u GET
和$\u POST
变量是如何工作的,以及[处理表单]()和PHP的一般情况。基于您的示例代码,我认为它应该很快变得清晰。@e-bacho2.0-他可能应该使用AJAX,但他提到了页面重新加载,他的示例代码根本没有表单或输入,因此我认为他需要先了解简单HTTP请求的基础知识,然后才能变得更复杂。我知道javascript和像这样传递值,但我还没有深入研究AJAX和HTTPrequests@shinjuo:您熟悉表单和获取/发布值吗?