首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >决定传递哪个隐藏输入值

决定传递哪个隐藏输入值
EN

Stack Overflow用户
提问于 2013-05-28 23:27:03
回答 1查看 231关注 0票数 0

我在我的网站上构建了一个自定义的form来进行搜索过滤。我使用隐藏输入字段来确定选择了哪种类型的搜索筛选器。值被传递,我在我的搜索页面上检查值是什么,然后指向正确的搜索结果页面,如下所示:

代码语言:javascript
运行
复制
<?php

    $search_refer = $_GET['search_type'];

    if($search_refer == 'members') {
        load_template(TEMPLATEPATH . '/search-members.php');
    } else if($search_refer == 'event') {
        load_template(TEMPLATEPATH . '/search-member-event.php');
    } else {
        load_template(TEMPLATEPATH . '/search-site.php');
    }

?>

下面是HTML/PHP中的两个字段

代码语言:javascript
运行
复制
<div class="state"> // Sorting by user State
    <input type="hidden" name="search_type" value="members">
    <select id="stateDrop" name="state">
        <option value="">State</option>
        <?php
            foreach($states as $state) {
                echo '<option value="'.$state.'">'.$state.'</option>';
            }
        ?>
    </select>
</div>
<div class="sort-event"> // Sorting by an Event
    <input type="hidden" name="search_type" value="event">
    <select id="eventDrop" name="event">
        <option value="">Event</option>
        <?php
            $args = array(
                'post_type' => 'events',
                'order' => 'ASC'
            );

            $eQuery = new WP_Query( $args );

            while( $eQuery->have_posts() ) : $eQuery->the_post();

                echo '<option value="'.$eQuery->post->post_title.'">'.$eQuery->post->post_title.'</option>';

            endwhile;

            wp_reset_query();
        ?>  
    </select>
</div>

两者都使用名称search_type作为隐藏名称,但值不同。members vs event。我的问题是,当您单击submit按钮时,收到的值始终是最后一个隐藏的输入值。例如event

有没有办法确定选择了哪个字段,以便我可以将搜索结果定向到正确的页面。(搜索页面会根据搜索结果引入不同的信息)。

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 23:56:56

因为您有两个同名的输入,所以只有一个输入会被设置到服务器。

如果你想让它们使用相同的名字,你需要使用POST和两个表单,这将需要两个单独的提交按钮,但转到同一个页面。这样,您就可以根据过滤器提交所需的表单。

代码语言:javascript
运行
复制
<form action="yourpage.php" method="post">
      <input type="hidden" name="search_value" value="members"/>
       ... member stuff
      <input type="submit" value="Filter Members"/>
</form>
<form action="yourpage.php" method="post">
      <input type="hidden" name="search_value" value="event"/>
       ... event stuff
      <input type="submit" value="Filter Events"/>
</form>

或者,您可以使用单选按钮的输入类型,因为它支持具有相同名称,因为一次只能选择一个值。

代码语言:javascript
运行
复制
Event: <input type="radio" name="search_type" value="event"/>
Members: <input type="radio" name="search_type" value="members"/> 



// Then in PHP $_POST["search_type"] will hold the selected value.

如果您希望继续使用GET,则可以在用户单击链接之前使用JavaScript设置单个隐藏元素的值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16795840

复制
相关文章

相似问题

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