我正在为我的漫画网站实现一个标签系统。
标记功能应:

在上面的图片中,我遇到麻烦的部分是蓝色的:
如果用户选择删除选定的标记,我如何回叫同一个php脚本?
谢谢!
发布于 2013-02-26 16:28:38
假设您只是在已知的键下将元素推入$_SESSION数组,那么只检查元素是否存在不是可以接受的吗?类似于
if(isset($_SESSION[$tag])) {
unset($_SESSION[$tag]);
} else {
$_SESSION[$tag] = 1;
}要使用它,只需使用array_keys()。不需要改变JS方面。
发布于 2013-02-26 16:31:08
您可以做的第一件事是发送一个正在被操作的标记数组。它们可能会被添加或移除-不重要。
Javascript
$.get("getTags.php", {tags:["tag1","tag2","tag3"]}, function(data) {
//have PHP return an updated list of tags.
});然后,迭代发送的标记,并检查它们是否已经存在。如果它们存在,你就把它们移走。否则,你就把它们加进去。
$tags = $_GET["tags"];
foreach ($tags as $tag) {
if (array_key_exists($tag, $_SESSION['tags'])) {
unset($_SESSION['tags'][$tag]);
} else {
$_SESSION['tags'][$tag] = $tag;
}
}
//Return your updated list of tags here.然后,如果需要,可以返回一个更新的标记列表,以确保所有内容都是同步的。
另一个选项是通过在AJAX调用中发送一个" action“参数,显式地声明正在执行的操作:
Javascript
$.get("getTags.php", {action: "remove", tags: ["tag1"]}, function(data) {
//Do whatever
}然后,在PHP中处理这个案例:
$availableActions = array("add", "delete");
$action = $_GET['action'];
//Make sure it's a valid action
$action = array_key_exists($action, $availableActions) ? $action : "add"; //Set a default.
//Now handle each action
switch ($action) {
case "add":
//Do stuff.
break;
case "delete":
//Do stuff.
break;
default:
}https://stackoverflow.com/questions/15094174
复制相似问题