2

我正在使用 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

或以下用于“或”查询:

domain.com/?topics=topic1,topic2,topic3

获得这些选项中的任何一个现在都可以使用(我最终打算为 AND/OR 搜索添加一个选项)

任何帮助或指向正确方向以使其正常工作都会很棒。

4

1 回答 1

1

当您提交表单时,您可以使用 JavaScript 构建 URL 并使用以下内容更改页面:

$('form').submit( function() {
    var selectArray = $('select').val();
    var newURL = "http://domain.com/?topics=";
    for (var i = 0; i < selectArray.length; i++) {
        if ( 1 != 0 ) {
            newURL += "+";
        }
        newURL += selectArray[i];
    }
    window.location = newURL;
});

细分:$('form').submit( function() { [...] });提交表单时触发。您可能希望使用 表单特有的类$('form.yourClass')或 ID来限定它。$('form#yourID')

$('select').val()将返回一个选择元素的选定值的数组。$('select.yourClass')它应该以与带有 class或 ID的表单相同的方式进行限定$('select#yourID')。JavaScript 遍历数组并将每个值附加到根 URL 的http://domain.com/?topics=每个+值之间。完成后,用户将被重定向到新 URL。

于 2012-04-24T21:05:07.077 回答