我正在尝试创建一个按钮,按下时删除一个数据库条目,当我点击它时,我想要一条消息说"你确定要删除这个"然后,如果我点击取消,消息消失,没有任何反应,如果我点击确定删除运行 - 但它重新加载页面,我认为这将需要一个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,但我想开始)
编辑:如果这是一个缓存问题,我该如何解决呢?
答案 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);
}
}