1

我有一个包含多个项目的页面,用户可以在同一页面上删除任何项目。但是我需要集成一个 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&amp;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&amp;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>";  
}

?>
4

3 回答 3

1

试试这个:

<a href=\"javascript:confirmDelete('items.php?del_item&amp;item_id=$item_id;')\">Delete</a>

你的javascript函数应该像

<script>

function confirmDelete(delUrl) {
 if (confirm("Are you sure you want to delete")) {
document.location = delUrl;
 }
} 
</script>
于 2013-01-29T08:40:23.787 回答
0

您需要将功能更改为

function confirmAlertBox(id){
   var retVal = confirm("Do you want to continue ?");
   if( retVal == true ){
  window.location = "items.php?del_item&amp;item_id="+id;
      return true;
   }else{
      return false;
   }
}

然后使用confirmAlertBox(<?php echo $item_id; ?>)而不是调用它confirmAlertBox()

于 2013-01-29T08:36:26.390 回答
0

我会一起删除单独的功能,并使用一些更简单的东西。

在构建表格单元格时,将删除链接更改为:

<a href="items.php?del_item&amp;item_id='.$item_id.'" 
   onclick="return confirm('Do you want to Delete this item?');">
       Delete Item
</a>

不确定如何在 php 中转义 ' 字符,因此您需要在确认函数中执行此操作

这样,链接已经在锚点中,如果用户单击确定,他们将被发送到该链接。否则false将被退回,用户将留在原地。

于 2013-01-29T08:48:08.143 回答