我有一个显示以下数据的网页:
| id | name | delete |
| 1 | orange | delete |
| 2 | apple | delete | etc...
当你按下删除(它的按钮)时,你会得到一个jquery对话框,再次显示两个按钮。您可以一次删除多个项目,也可以只删除所选项目。
-------------------------------
|dialog |
-------------------------------
|delete this row |
|delete entire series |
-------------------------------
我的问题是:当在对话框中选择“删除此行”时,如何在jquery中获取所选行的ID?如何重定向到删除数据库中的行的PHP页面,然后重定向到当前更新的页面(删除行)?
我对jquery很新,但这是我到目前为止所得到的:
JQuery的
<script>
$(function() {
$( ".dialog" ).dialog({ autoOpen: false });
});
$(function() {
$(".showDialog").click( function()
{
$( ".dialog" ).dialog( "open");
});
});
$(function() {
$( ".deleteEvent" ).click( function()
{
$( ".dialog" ).dialog( "close");
$(this).closest("tr").remove(); // doesn't work
});
});
</script>
对话框
<div class="dialog" title="delete event dialog">
<input class="deleteEvent" type='button' value='delete this row'/>
</div>
表
foreach($table as $row)
{
echo '<tr><td>'.$row['id'].'</td>',
'<td>'.$row['name'].'</td>',
'<td><div class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
'</tr>';
}
答案 0 :(得分:0)
当您使用删除输入按钮输出html时,还要添加一个隐藏的输入字段,将id作为值传递
编辑:
我误读了你的代码,看起来你没有为每个显示的行提供单独的输入按钮。对于您的情况,我建议将行添加为div id值的一部分,或者在div中添加自定义attrib,如下所示:
foreach($table as $row)
{
echo '<tr><td>'.$row['id'].'</td>',
'<td>'.$row['name'].'</td>',
'<td><div id="row_'.$row['id'].'" class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
'</tr>';
}
或
foreach($table as $row)
{
echo '<tr><td>'.$row['id'].'</td>',
'<td>'.$row['name'].'</td>',
'<td><div row="'.$row['id'].'" class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
'</tr>';
}
然后在您的点击事件中,您可以分别使用$(this).attr('id').split('_')[1]
或$(this).attr('row')