Query using selected option value from select

I would like to use the $_query object to search, filtering by a dynamic-metadata set that has the selected option in a select field. Currently it adds the options from the "news-and-events" metadata set if they are selected on the news-list-page (metadata), but the query doesn't display ONLY the metadata items that were selected in the output of the search it has ALL the pages with metadata from "news-and-events". What am I missing?

Example:

#set ( $news_list_page = $_XPathTool.selectSingleNode($contentRoot, "/system-index-block/calling-page/system-page") )
#set ( $news_list_page_metadata = $news_list_page.getChildren('dynamic-metadata') )
#set ( $query = $_.query() )
#set ( $query = $query.byMetadataSet("Main-Taxonomy-List") )
#set ( $query = $query.byContentType("news-detail") )
#set ( $query = $query.includePages(true) )
#set ( $query = $query.includeFiles(false) )
#set ( $query = $query.includeBlocks(false) )
#set ( $query = $query.includeFolders(false) )
#set ( $query = $query.includeSymlinks(false) )
#set ( $query = $query.sortBy("created") )
#set ( $query = $query.sortDirection("desc") )
#set ( $query = $query.maxResults(12) )
#set ( $news = $query.execute() )
<div class="region news-list-region">
    <div class="region-holder">
        <!-- Filter form -->
        <form class="filter-form">
            <div class="filter-form-holder">
                <div class="filter-form-item">
                    <span class="filter-form-label">Search by:</span>
                </div>
                <div class="filter-form-item">
                    <div class="filter-form-select-wrapper">
                        <select class="filter-form-select" name="" id="select-1">
                            <option value="Recent news">Recent news</option>
                            <option value="2015-2016">2015-16</option>
                            <option value="2014-2015">2014-15</option>
                            <option value="2013-2014">2013-14</option>
                        </select>
                    </div>
                </div>
                <div class="filter-form-item">
                    <div class="filter-form-select-wrapper">
                        <label for="topics" class="hide-for-screen-reader">Please choose topic</label>
                        <select class="filter-form-select" name="topics" id="topics">
                            <option value="All Topics">All Topics</option>
                            #foreach( $news_items in $news_list_page_metadata )
                                #if( 'news-and-events' == $news_items.getChild('name').value )
                                    #set( $taxonomy_list = $news_items.getChildren('value') )
                                    #foreach( $taxonomy_item in $taxonomy_list )
                                        <option value="${_EscapeTool.xml($taxonomy_item.value)}">${_EscapeTool.xml($taxonomy_item.value)}</option>
                                    #end
                                #end
                            #end
                        </select>
                    </div>
                </div>
                <div class="filter-form-item">
                    <button type="submit" class="filter-form-btn btn btn-primary">Search</button>
                </div>
            </div>
        </form>

Showing page 2 of 2. View the first page

  1. Hi,

    Can you give me the id for the metadata fields that you have created? Also, are they all multi-selects. I can write mock something up to show you. I'd recommend storing them all as a string and then having the string in the outter tag.

  2. Also, can you send me a sample of what the html should be with a sample category in the class?

  3. Okay, the metadata fields are multi selects ( are you referring to the id I have on the form input select?) you'll see the id in the attached HTML. Sorry my velocity is a mess, I am trying everything. If you need any clarity let me know.

  4. Hi,

    I need the id for the metadata fields in Cascade. You can find that on the metadata panel for the news type. Just let me know. Thanks!

  5. I am sorry, I don't know what you are referring to. If i go into the metadata from Administration and look at the set for the dynamic fields I've set up there isn't any "id" just the various options for the multi-select.

  6. On a News Article page, click Properties tab. Then scroll down, you will see a Metadata Set. Click on that little white icon. Then from there, click on the Dynamic Fields tab. Tell me what is in the Name area. Thanks!

  7. Sorry Penny, I didn't know that was referred to as the "id" the set name that I am using has a multi-select named "news-and-events"

Discussions are closed to public comments.
If you need help with Cascade CMS please start a new discussion.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac