Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除前确认href链接_Javascript_Php_Html - Fatal编程技术网

Javascript 删除前确认href链接

Javascript 删除前确认href链接,javascript,php,html,Javascript,Php,Html,我计划在脚本从数据库中删除之前设置一个确认框,以防选择了错误的行 href的代码 echo '<td align="center" valign="middle"><a href="delete.php?id='.$row["id"].'" class="confirmation"><img src="img/icon/delete.png"></a></td>'; echo'; Java脚本 <script type="te

我计划在脚本从数据库中删除之前设置一个确认框,以防选择了错误的行

href的代码

echo '<td align="center" valign="middle"><a href="delete.php?id='.$row["id"].'" class="confirmation"><img src="img/icon/delete.png"></a></td>';
echo';
Java脚本

<script type="text/javascript">
    var elems = document.getElementsByClassName('confirmation');
    var confirmIt = function (e) {
        if (!confirm('Are you sure?')) e.preventDefault();
    };
    for (var i = 0, l = elems.length; i < l; i++) {
        elems[i].addEventListener('click', confirmIt, false);
    }
</script>

var elems=document.getElementsByClassName('confirmation');
var confirmIt=函数(e){
如果(!confirm('you sure?')e.preventDefault();
};
对于(变量i=0,l=elems.length;i
当按下“删除”图像时,它只是删除行,没有出现确认框?

PHP

echo '<td align="center" valign="middle"><a data-href="delete.php?id='.$row["id"].'" href="javascript:;" onclick="confirmToDelete(this);"><img src="img/icon/delete.png"></a></td>';
echo';
JavaScript

<script>
  function confirmToDelete(element){
    if(!element) return false;
    if(confirm('Are you sure?')) self.location.href=element.getAttribute('data-href');
  }
</script>

函数confirmToDelete(元素){
如果(!element)返回false;
if(confirm('you sure?'))self.location.href=element.getAttribute('data-href');
}

确保脚本标记位于页面末尾,或至少在链接之后。

尝试以下代码。您可以在没有外部javascript的情况下完成这项工作。只需在链接的
onlick
事件中添加
confirm
功能

PHP

echo';

Hey Joseph,你确定elems数组不是空的,所以循环实际上是通过你的确认链接进行的吗?确保脚本标记在你的页面末尾,或者至少在链接之后。我请客@YazanWYusuf谢谢。我觉得@YazanWYusuf应该发布一个答案,尽管有一些帖子“之后“是的,这是公平的。”约瑟夫托马斯马林森我已经对你的评论给出了答复。如果我的回答真的对您有所帮助,我希望您能接受。这是可行的,但它涉及到将文档结构与应用程序逻辑混合在一起——从长远来看,这不是一个好主意。这是可行的,但它涉及将文档结构与应用程序逻辑混合在一起——从长远来看,这不是一个好主意。此外,还可以使用jQuery。然后可以在顶部定义脚本。然后,逻辑将在onPageLoaded eventhandler中启动。
echo '<td align="center" valign="middle"><a href="delete.php?id='.$row["id"].'" class="confirmation" onclick="return confirm(\'Are you sure?\');"><img src="img/icon/delete.png"></a></td>';