我有一个动态表,其中列出了 MySQL 表中的一些项目,如下所示:
<?php
$output='';
$sql1=mysql_query("SELECT * FROM table1 ORDER BY item")or die(mysql_error());
$sql1n=mysql_num_rows($sql1);
if($sql1n>=1){
while($row=mysql_fetch_array($sql1)){
$item_num=$row['item_num'];
$item_category=$row['item_category'];
$item_name=$row['item_name'];
output .='<tr>';
output .='<td>'.$item_num.'</td>';
output .='<td>'.$item_category.'</td>';
output .='<td>'.$item_name.'</td>';
output .='<td><a href="#">Delete</a></td>';
output .='</tr>';
}else{
output .='Items not found!";
}
?>
现在我有了我的 HTML 页面
<body>
<table width="100%" id="panel" border="0" cellspacing="0" cellpadding="3" class="table2">
<tr>
<td>Item #</td>
<td>Category</td>
<td>Name</td>
</tr>
<?php echo $output; ?>
</table>
</body>
如果数据库中有一些数据,我将拥有项目、类别和名称的列表以及带有删除选项的额外列,否则,它将返回“找不到项目”! 我想单击“删除”链接,并将引用实际行的变量 $item_num 和 $item_category 传递给 jquery 函数,该函数将发送到以下 PHP 文件,而不刷新实际文件,并返回一条消息,说明该项目已成功删除!
删除项目.php
<?php
include ('dataconfig.php');
if((isset($_POST['item_num']))and(isset($_POST['item_category']))){
$item_num=$_POST['item_num'];
$item_category=$_POST['item_category'];
$sql_delete=mysql_query("DELETE FROM table1 WHERE item_num='$item_num' AND item_category='$item_category'")or die(mysql_error());
}
?>
我不知道构建一个 jQuery 函数的最佳方法来做到这一点,我将非常感谢任何可以引导我完成这项任务的帮助。
谢谢
最佳答案
您应该将 $item_num 和 $item_category 添加到 tr 元素的属性中。
例如:
output .='<tr id="'.$item_num.'" category="'.$item_category.'">';
output .='<td>'.$item_num.'</td>';
output .='<td>'.$item_category.'</td>';
output .='<td>'.$item_name.'</td>';
output .='<td><a href="#">Delete</a></td>';
output .='</tr>';
在 jQuery 中,单击行时生成事件:
$('table tr[id]').click(function(){
var obj = $(this);
$.ajax({
type: "POST",
url: 'url/to/Delete-item.php',
data: { item_num: obj.attr("id"), item_category: obj.attr("category") },
dataType: "json",
success: function(data) {
if (data.success == "true") {
alert('Item was deleted');
} else {
alert('error');
}
}
});
})
并修改Delete-item.php
if((isset($_POST['item_num']))and(isset($_POST['item_category']))){
$item_num=$_POST['item_num'];
$item_category=$_POST['item_category'];
$sql_delete=mysql_query("DELETE FROM table1 WHERE item_num='$item_num' AND item_category='$item_category'")or die(mysql_error());
$success = ($sql_delete) ? "true" : "false";
$successArray = array("success" => $success);
echo json_encode($successArray);
}
我没有测试过。
不要忘记对 $item_num 使用 intval ,对 $item_category 使用 mysql_real_escape_string 来防止 SQL 注入(inject)。
关于php - 使用 JQuery 获取 PHP 变量并将其传递到另一个 PHP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520962/