JavaScript - 确认框。 |是? >从MySQL删除数据/否 - 什么都不做

时间:2009-06-01 10:45:04

标签: javascript mysql

我对JavaScript没有多少经验。但是我想用JavaScript和MySQL做一件小事。我可以使用一些帮助。

我在PHP中有一个页面搜索某些内容,它会根据搜索查询给出结果。 对于每个结果,它会添加3个图像,其中一个图像作为您可以查看内容的URL。其他您可以编辑该内容的地方。

你可以删除的第三个。 为此,我想做点好事。

就像用户点击图片一样,会出现一个确认对话框。在该框中,它会询问您是否确定要删除数据。 如果是,它将删除数据。其中ID =

使用PHP echo在图像中的JavaScript函数内的onclick操作中打印ID。

如果没有,我们将关闭对话框并继续。

4 个答案:

答案 0 :(得分:10)

好的,我们假设以下内容(请原谅我重新澄清问题):

你有一些表格的行,有删除链接,你想确认用户是否真的要删除它?

我们假设以下HTML:

<tr>
   <td>Some Item 1</td>
   <td><a href="?mode=delete&id=1" class="delete-link">Delete</a></td>
</tr>
<tr>
   <td>Some Item 2</td>
   <td><a href="?mode=delete&id=2" class="delete-link">Delete</a></td>
</tr>
<tr>
   <td>Some Item 3</td>
   <td><a href="?mode=delete&id=3" class="delete-link">Delete</a></td>
</tr>

所以我假设同样的PHP脚本可以运行删除,获取模式参数:

<?php
    if($_GET['mode'] == 'delete') {
       //Check if there is something in $_GET['id'].
       if($_GET['id']) {

          //Prevent SQL injection, just to be safe.
          $query = "DELETE FROM sometable WHERE id='" . mysql_real_escape_string($_GET['id']) . "'";

          mysql_query($query);
       }
    }

我将在JavaScript方面为此提供两个解决方案 - 第一个使用内联,稍微丑陋的解决方案,第二个使用jQuery(http://jquery.com/),以及不引人注目的JavaScript。

好的,首先,我会绑定每个链接的onclick事件。

<tr>
   <td>Some Item 3</td>
   <td><a href="?mode=delete&id=3" class="delete-link" onclick="checkDeleteItem();">Delete</a></td>
</tr>

然后创建一个JavaScript函数:

//This will get called when the link is clicked.
function checkDeleteItem() {
   //show the confirmation box
   return confirm('Are you sure you want to delete this?');
}

正如我所说,我不喜欢这种解决方案,因为它非常突兀,也不是特别强大。

现在,jQuery解决方案:

//Do all this when the DOM is loaded
$(function() {
   //get all delete links (Note the class I gave them in the HTML)
   $("a.delete-link").click(function() {
       //Basically, if confirm is true (OK button is pressed), then
       //the click event is permitted to continue, and the link will
       //be followed - however, if the cancel is pressed, the click event will be stopped here.
       return confirm("Are you sure you want to delete this?");
   });
});

我衷心地推荐这个解决方案,因为它更优雅,更好,通常是最好的做法。

答案 1 :(得分:1)

无法帮助您使用php部分,但您可以使用JavaScript的Confirm

var ok = confirm('Are you sure you want to delete this row');
//ok is true or false

您可以将功能绑定到删除按钮上的click事件。返回false会导致他们忽略点击。

答案 2 :(得分:0)

您需要的是一个基本的HTML表单,它将提交并删除。首先获取HTML - 我建议每个图像都有自己的形式,ID值为隐藏字段,图像使用图像按钮:<input type="image" />

完成此工作后,您可以添加JavaScript警告对话框。您需要使用自己的函数替换表单的提交事件,以阻止表单提交(通过返回false),然后显示您的对话。如果用户单击“是”,则您需要使用JavaScript触发表单onsubmit()事件,如果用户单击“否”,则只需隐藏对话框。

此外,阅读一篇关于不引人注目的JavaScript的文章 - DOM Scripting by Jeremy Keith是一本很棒的书,只是解释了如何做这些事情。

答案 3 :(得分:0)

如果您有一个删除所需行的按钮,请调用以下函数以确认用户是否要删除:

function confirmDelete()
{
  if (confirm('Do you want to delete ?'))
  {
      return true;
  }
  else
  {
      return false;
  }
}

这样称呼:

<input type="button" value="Delete Record" onclick="confirmDelete()" />