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

OR 'OR' クエリの場合は次のとおりです。

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()は、selectet 要素の選択された値の配列を返します。$('select.yourClass')クラスまたは IDを持つフォームと同じ方法で修飾する必要があります$('select#yourID')。JavaScript は配列を通過し、各値の間に をhttp://domain.com/?topics=付けてルート URL に各値を追加+します。完了すると、ユーザーは新しい URL にリダイレクトされます。

于 2012-04-24T21:05:07.077 に答える