【发布时间】:2017-04-16 06:32:04
【问题描述】:
我已经成功创建了一个“添加到收藏夹”按钮,但现在在“从收藏夹中删除”部分遇到了困难。
我不确定在 PHP 文件中处理多个 ajax 操作的正确方法。 到目前为止,我的代码如下所示:
HTML
<div class="favourite-links">
<a href="inc/functions?action=remove&..." id="remove">
Remove From Favourites
</a>
<a href="inc/functions.php?action=add&..." id="add">
Add to Favourites
</a>
</div>
JQUERY
$(document).ready(function() {
$('#add').click(function(event) {
event.preventDefault();
var courseData = {...}
$.ajax({
url: "inc/functions.php",
type: "POST",
data: courseData,
success: function() {
$('#add').css('display', 'none');
$('#remove').css('display', 'inline');
alert('successful');
}
});
return false;
});
});
PHP
<?php require("../../Common2.php");
$sessionID = $_COOKIE['PHPSESSID'];
$student = $_POST['userid'];
$courseID = $_POST['courseID'];
$courseName = $_POST['courseName'];
$query = "INSERT IGNORE INTO course_tag_fetch
(sessionID, courseID, courseName, userid)
VALUES
('$sessionID', '$courseID', '$courseName', '$student')";
$query_run = mysql_query($query);
if ($query_run) {
echo 'Success';
} else {
echo 'Failed';
}
?>
我希望删除操作从数据库中删除。将动作放在 if 语句中的最佳方法是什么? 例如。
if (action == "add") {
--- INSERT query --- }
if (action == "remove) {
--- DELETE query ---}
或者有没有更合适的方法来做到这一点? 非常感谢任何帮助。
【问题讨论】:
-
您可以将
async: false添加到jQuery调用中,这样如果您多次单击,删除调用将不会在添加调用之前被调用。 -
永远不要使用链接来更新数据库。只需 google 一次访问即可添加和删除,并且可能仅通过抓取您的页面来添加、添加、添加
-
@mplungjan 谢谢,我可以把它改成不同的元素,比如按钮吗?
-
@BartBergmans 谢谢,我会补充的
-
只是不要在链接的 href 中包含它。您可以将它放在数据属性中,这样它就不会被遵循,并让脚本读取属性而不是 href