【发布时间】:2015-01-03 04:44:44
【问题描述】:
我的 Mac 上有一个帐户数据库,在单击删除按钮后使用 HTML、Javascript 和 PHP 删除帐户。它在 FireFox 中每次都有效,在 Safari 中每次都失败(失败意味着删除请求被完全忽略)。
基本上,这就是我的代码正在做的事情......
- Form 内的按钮
onclick调用 js funcverifyDelete()要求我验证我的删除选择 - 接下来,来自同一表单的
onsubmit调用一个js funcdelAccount() - 最后
delAccount()使用XMLHttpRequest调用php页面删除 帐号
我通过查看 AJAX 获得了使用 XMLHttpRequest 的想法。我不需要 AJAX 使用的所有 ReadyState、Response 等,所以我只使用了我需要的东西。做我在delAccount() 函数中所做的事情是否“合法”?也许这就是 Safari 失败的原因?
感谢您的帮助,这是我的代码...
文件 - View.php
<?php
// some code
?>
<form method="get" onsubmit="return delAccount('<?php echo $acctNum; ?>')">
<input type="hidden" name="acctName" value="Blah” />
<button onclick="return verifyDelete()" >Delete</button>
</form>
<?php
// some code
?>
文件 - common.js
function verifyDelete() {
var r=confirm("Are you sure you want to Delete this?\r\n\n" +
"A) 'Cancel' delete request\r\n" +
"B) 'OK', delete\r\n");
if (r == false) {
return false;
}
else {
return true;
}
}
function delAccount (acctNum) {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlDelete = new XMLHttpRequest();
}
xmlDelete.open("GET", "delAcct.php?q=" + acctNum, true);
xmlDelete.send(null);
return false;
}
文件 - delAcct.php
<?php
// code to delete account
?>
【问题讨论】:
-
为什么你不使用像 jQuery 这样的 JavaScript 库?这些库的构建考虑了这些跨浏览器问题,并且还使您的 javascript 代码易于编写和管理。--顺便说一句,您在 safari 中看到任何 javascript 错误吗?尝试在您的 delAccount 方法中提醒 acctNum 并查看
-
有人告诉我,在学习jquery之前最好先熟悉javascript。不是这样吗?
-
我在各处都使用了警报,但没有发现任何不应该做的事情 - 包括遍历
if语句,所以我知道正在调用 php。 -
对于这样的事情,我建议使用某种 javascript 库,这将使您的生活变得轻松。
-
告诉你熟悉javascript的人是对的。但是 javascript 作为一种语言,而不是跨浏览器开发的噩梦,这对您毫无帮助。做一些算法来学习第一部分,当你来玩 DOM 或 AJAX 时就拿 JQuery。
标签: php javascript html xmlhttprequest