首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP标记-召回相同的脚本来更新数组和查询

PHP标记-召回相同的脚本来更新数组和查询
EN

Stack Overflow用户
提问于 2013-02-26 16:25:13
回答 2查看 187关注 0票数 0

我正在为我的漫画网站实现一个标签系统。

标记功能应:

  • 允许用户选择多个标签并显示其选定的标签,所选的标签应过滤所显示的漫画
  • 允许用户取消选择选择的标记,这将更新他们选择的标签并更新返回的漫画

在上面的图片中,我遇到麻烦的部分是蓝色的:

如果用户选择删除选定的标记,我如何回叫同一个php脚本?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-26 16:28:38

假设您只是在已知的键下将元素推入$_SESSION数组,那么只检查元素是否存在不是可以接受的吗?类似于

代码语言:javascript
复制
if(isset($_SESSION[$tag])) {
  unset($_SESSION[$tag]);
} else {
  $_SESSION[$tag] = 1;
}

要使用它,只需使用array_keys()。不需要改变JS方面。

票数 1
EN

Stack Overflow用户

发布于 2013-02-26 16:31:08

您可以做的第一件事是发送一个正在被操作的标记数组。它们可能会被添加或移除-不重要。

Javascript

代码语言:javascript
复制
$.get("getTags.php", {tags:["tag1","tag2","tag3"]}, function(data) {
    //have PHP return an updated list of tags.
});

然后,迭代发送的标记,并检查它们是否已经存在。如果它们存在,你就把它们移走。否则,你就把它们加进去。

代码语言:javascript
复制
$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

代码语言:javascript
复制
$.get("getTags.php", {action: "remove", tags: ["tag1"]}, function(data) {
     //Do whatever
}

然后,在PHP中处理这个案例:

代码语言:javascript
复制
$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:
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15094174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档