【问题标题】:Cancel option on JavaScript confirmation box returns true condition onlyJavaScript 确认框上的取消选项仅返回真条件
【发布时间】:2018-11-04 10:13:44
【问题描述】:

我正在我的网页上使用 php 打印一些数据,并在其旁边提供“编辑”和“删除”选项。

现在我使用 onclick 在其旁边添加了一个 javascript 确认页面。 现在,当用户按下“确定”按钮时,它会按预期执行查询。但即使用户按下取消按钮,它仍然会执行查询并删除数据。

if($total!=0)
        {

                while($result = mysqli_fetch_assoc($data)){

                    echo"<table><tr>

                    <td>".$result['address']."</td>
                    <td>".$result['telephone']."</td>
                    <td>".$result['phone']."</td>
                    <td>".$result['email']."</td>
                    <td><a href='contact_edit.php?id=$result[id]&address=$result[address]&telephone=$result[telephone]&phone=$result[phone]&email=$result[email]'>EDIT</td>
                    <td><a href='contact_delete.php?id=$result[id]' onclick='checkdelete()'>DELETE</a></td>
                    </tr></table>";
            }
        }

javascript代码:

<script>

function checkdelete() 
{
    confirm('ARE YOU SURE YOU WANNA DELETE?');
}

</script>

我应该将它包装在 if-else 语句中吗?

【问题讨论】:

  • 调用 checkdelete() 在您的代码中没有任何作用
  • 查询在名为“contact_delete.php”的不同页面上执行,理论上应该在确认框中单击“是”时运行。它在我的代码中这样做,但在单击取消时,它仍然在“contact_delete.php”上执行查询

标签: javascript php


【解决方案1】:

在 php 中:

echo "...
  ...
  <td>
   <a href='#' onclick='checkdelete(\"contact_delete.php?id=".$result[id]."\")'>
     DELETE
   </a>
  </td>
  ... ";

在js中:

<script>

function checkdelete(url) 
{
    if( confirm('ARE YOU SURE YOU WANNA DELETE?') ){
         window.location.replace(url);
    }
}

</script>

【讨论】:

  • 它有效。谢谢。你能解释一下原因吗?
  • 在您的代码中,在一个标签中,您有两个链接,因此如果用户单击取消链接,contact_delete.PHP 始终会执行。使用@Khaled Alan 代码时,您仅在用户单击“确定”时才执行文件 PHP...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多