使用javascript确认框验证用户操作

时间:2013-01-29 08:33:50

标签: javascript html

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

?>

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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()来调用它。

答案 2 :(得分: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,用户将保持原状。