【发布时间】:2012-05-05 13:22:51
【问题描述】:
我正在使用 Harvest Chosen jQuery 插件成功地在 Wordpress 网站上创建一个带有提交按钮的下拉单选列表。这被连接起来以显示给定分类中的所有术语,并允许用户选择一个术语,然后按下提交按钮以加载与所选术语相关的相应页面。
我现在正在尝试让插件与分类中的多个术语选择一起使用。我有选择工作,在前端用户可以选择多个术语,但我不知道如何提交多个选择。
我知道我的代码缺少某些内容,但我不知道需要修改什么以允许选择多个术语。
这是我目前所拥有的:
<form action="<?php bloginfo('url'); ?>">
<div>
<?php
function get_terms_dropdown($taxonomies, $args){
$myterms = get_terms($taxonomies, $args);
$output ="<select name='topics' class='chosen' style='width:500px' multiple='true'>";
foreach($myterms as $term){
$root_url = get_bloginfo('url');
$term_taxonomy = $term->taxonomy;
$term_slug = $term->slug;
$term_name = $term->name;
$link = $term_slug;
$output .="<option value='".$link."'>".$term_name."</option>";
}
$output .="</select>";
return $output;
}
$taxonomies = array('topics');
$args = array();
echo get_terms_dropdown($taxonomies, $args);
?>
<div><input type="submit" value="Filter" /></div>
</div>
</form>
通常,对于多项选择,“AND”查询的 URL 结构如下所示:
domain.com/?topics=topic1+topic2+topic3
“OR”查询的 OR 如下:
domain.com/?topics=topic1,topic2,topic3
现在获取这些选项中的任何一个都可以(我最终打算为 AND/OR 搜索添加一个选项)
任何帮助或指向正确方向以使这项工作正常进行都会很棒。
【问题讨论】:
-
如果您使用的是 PHP,它可能需要一个查询字符串,例如
?topics[]=topic1&topics[]=topic2&topics[]=topic3&mode=AND。让我知道这是否可以。 -
嗨,萨尔曼。如果我从多选下拉列表中仅选择一个值,则提交工作正常,第一个“?”附加到 url。问题来自多个选择,其中提交只需选择最后一个选择的值,然后加载该页面......
-
如果我从多个下拉列表中选择一个值,提交工作正常,第一个“?”被添加到 url。问题来自多个选择,其中提交选择最后一个选择的值,并加载该页面...如果我编辑 $output .=" ";这将创建如下网址: domain.com/?topics=letterTOPIC1&topics=letterTOPIC2 我希望可以使用 str_replace 进行更改,但是 & 、 + / 等是 urlencoded 并且我找不到 str_replace 它们的方法。
-
我强烈推荐使用 Select2 而不是 Chosen。选择从未真正完成。这是一个很好的开始...... Select2 更加完整,错误更少,得到开发,并支持响应式设计等现代概念。它的工作原理基本相同,因此转换非常容易。 ivaynberg.github.com/select2
标签: php wordpress forms jquery-chosen