我可以/如何将OnClick与中的if语句一起使用

Can I/how do I use an OnClick with an if statement in?

本文关键字:if 语句 一起 OnClick 我可以      更新时间:2023-09-26

我正试图创建一个按钮,当按下该按钮时,删除数据库条目,当我单击它时,我想要一条消息说"你确定要删除这个吗",然后如果我单击取消,消息就会消失,什么也没发生,如果我单击确定,删除会运行--,但也会重新加载页面,我认为这将需要一个jquery(这就是我希望它在其中的位置)if语句,它基本上说如果单击了ok,那么运行默认值,并在代码运行后刷新页面。

到目前为止,我有

<button name="del" type="submit" value="1" onclick="return confirm('Are you sure you want to delete this?') "> delete</button>

请告诉我,如果我在这方面走错了路,如果我没有,请帮助我如何写if,(我实际上已经搜索过了,信息不够完整,我无法理解,我是一名PHP开发人员,以前从未使用过任何Javascript,但我想启动)

编辑:如果这是一个缓存问题,我该如何解决?

您的确认很好。然而,当您按下"Ok"时,您基本上执行了两个请求。

我会用两种方法之一:

1。返回到同一页面,并在生成页面数据之前使用PHP处理$_POST数据。伪代码:

if($_POST['userid']!= null)
    deleteUser($_POST['userid']);
getUsers();

2。使用Javascript向另一个执行用户删除操作的页面发出Ajax请求。然后在"完成"事件中,让JS重新加载您当前所在的页面。

我认为第二种选择是最好的。它也会让你更多地接触JavaScript。

$.ajax({
  url: "deleteuser.php?userid=1",
}).done(function() {
  location.reload();
});

或者对$.post的模棱两可您甚至不需要重新加载页面。您可以使用Javascript删除包含刚刚删除的用户的行。这当然使用jQuery,但jQuery只是Javascript 的包装器

我认为您的问题更多的是缓存问题,并且在表单提交后重新加载页面效率很低,因为您正在执行不必要的往返服务器,但是如果这是您想要的,这里有一种方法:

PS:删除提交按钮上的onclick属性。

document.addEventListener('DOMContentLoaded', function () {
    initDeletionPage(document.getElementById('the-id-of-the-form-to-target'));
});
function initDeletionPage(deletionForm) {
    refreshPageIfNeeded();
    deletionForm.addEventListener('submit', onSubmit);
    function refreshPageIfNeeded() {
        if (sessionStorage.getItem('pageRefreshNeeded')) {
            sessionStorage.removeItem('pageRefreshNeeded');
            location.reload();
        }
    }
    function onSubmit(e) {
        if (!confirmDeletion()) e.preventDefault();
        else indicatePageRefreshNeededAfterSubmission();
    }
    function confirmDeletion() {
        return confirm('Are you sure you want to delete this?');
    }
    function indicatePageRefreshNeededAfterSubmission() {
        sessionStorage.setItem('pageRefreshNeeded', true);
    }
}

对不起,我要求更多Jquery方式

好的。。。

$(function () {
    initDeletionPage('#the-id-of-the-form-to-target');
});
function initDeletionPage(deletionForm) {
    refreshPageIfNeeded();
    $(deletionForm).submit(onSubmit);
    function refreshPageIfNeeded() {
        if (sessionStorage.getItem('pageRefreshNeeded')) {
            sessionStorage.removeItem('pageRefreshNeeded');
            location.reload();
        }
    }
    function onSubmit(e) {
        if (!confirmDeletion()) e.preventDefault();
        else indicatePageRefreshNeededAfterSubmission();
    }
    function confirmDeletion() {
        return confirm('Are you sure you want to delete this?');
    }
    function indicatePageRefreshNeededAfterSubmission() {
        sessionStorage.setItem('pageRefreshNeeded', true);
    }
}