我有一个包含多个项目的页面,用户可以删除同一页面上的任何项目。但是我需要集成一个javascript确认警告框来验证用户是否真的想继续为每个项目执行操作。
我能够通过将javascript放在页面中来实现它,但挑战在于我只能使用一个javascript函数来删除一个项目。这只是意味着我会为每个项目提供多个javascript,这很难,因为这些项目的数量无法定义,因为它不断增加。
所以我需要能够为所有正在显示的项目使用一个javascript函数。
以下是javascript代码:
<script>
<!--
function confirmAlertBox(){
var retVal = confirm("Do you want to continue ?");
if( retVal == true ){
window.location = "items.php?del_item&item_id=<?php echo $item_id; ?>";
return true;
}else{
return false;
}
}
//-->
</script>
以下是从数据库中获取的项目:
<?php
while ($all_item_row = @mysql_fetch_assoc($all_item_query)) {
$item_title = $all_item_row['title'];
$item_id = $all_item_row['id'];
echo '<tr> <td>'.$item_title.'</td> <td class="action_lnk"><a href="edit_item.php?edit_cal&item_id='.$item_id.'">Edit Item</a> <a href="#" onclick="confirmAlertBox()">Delete Item</a> <div class="clear"></div></td> </tr>';
}
}
else{
echo "<strong>No item available. Thank You!</strong>";
}
?>
答案 0 :(得分:1)
试试这个:
<a href=\"javascript:confirmDelete('items.php?del_item&item_id=$item_id;')\">Delete</a>
你的javascript函数应该像
<script>
function confirmDelete(delUrl) {
if (confirm("Are you sure you want to delete")) {
document.location = delUrl;
}
}
</script>
答案 1 :(得分:0)
您需要将功能更改为
function confirmAlertBox(id){
var retVal = confirm("Do you want to continue ?");
if( retVal == true ){
window.location = "items.php?del_item&item_id="+id;
return true;
}else{
return false;
}
}
然后使用confirmAlertBox(<?php echo $item_id; ?>)
而不是confirmAlertBox()
来调用它。
答案 2 :(得分:0)
我会一起删除单独的函数,并使用更简单的东西。
在构建表格单元格时,将“删除”链接更改为:
<a href="items.php?del_item&item_id='.$item_id.'"
onclick="return confirm('Do you want to Delete this item?');">
Delete Item
</a>
不确定如何逃避php中的'字符,因此您需要在确认功能中执行此操作
这样链接就已经在锚点中,如果用户单击确定,则会将用户发送到此链接。否则将返回false
,用户将保持原状。