我可以/如何使用带有if语句的OnClick?

时间:2014-09-25 12:47:31

标签: javascript jquery button onclick confirm

我正在尝试创建一个按钮,按下时删除一个数据库条目,当我点击它时,我想要一条消息说"你确定要删除这个"然后,如果我点击取消,消息消失,没有任何反应,如果我点击确定删除运行 - 它重新加载页面,我认为这将需要一个jquery(这就是我想要的喜欢它的if 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,但我想开始)

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

2 个答案:

答案 0 :(得分:1)

您的确认没问题。 但是,当您按下&#34;确定&#34;。

时,您基本上会执行2个请求

我是这两种方式中的一种:

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

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

2。 使用Javascript将Ajax请求发送到另一个删除用户的页面。然后在&#34;完成&#34; event,让JS重新加载你当前正在使用的页面。

我认为选项2是最好的。它也会让你更多地了解JavaScript。

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

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

答案 1 :(得分:0)

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

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);
    }
}