从下拉列表中获取所选选项

时间:2019-04-02 作者:Bert ter Voert

我使用db中的数据创建了一个下拉列表来填充选项。这很好用。现在,我想获得所选的值,以便从db中选择具有该值的所有帖子。我一直在寻找和尝试我找到的许多建议,但到目前为止,似乎没有什么能起到作用。如果可能的话,我想在php中完成这项工作(值需要以美元为单位才能构建db查询)。

这是输出所选零件的代码:

<div class="search-bar-container">
    <div class="drop-down-course">
        <select class="course" name="course">
            <option disabled selected value="0"> - gang - </option>
            <?php
            // Get all the options from the database for the \'course\' drop down list.
            $my_course = $wpdb -> get_results( "SELECT term_id, name FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = \'wprm_course\') " )  ; 
                if (!empty ($my_course ) ) {
                    foreach ( $my_course as $my_course ) {
                        echo \'<option value ="\' . $my_course -> term_id . \'">\' . $my_course -> name . \'</option>\';
                    }
                }
            ?>
        </select>
    </div>
</div>
我已经读过关于使用selected()函数的内容,但我无法让它对我起作用。如果我理解正确,我需要一个条件selected="selected"<option> 部分如果有人能帮我,我将不胜感激。

编辑:我已经设法使用jquery获得了值(我想要一个没有提交按钮的解决方案)。代码:

    $(document).ready(function(){
    $("#course").change(function(){
     var selectedcourse = $(\'#course\').val(); 
    });
    });
现在,我需要在一个新页面上将值输入php。我正在努力让它发挥作用。

Edit2:我的最后一部分也在工作。后面的代码行var selectedcourse = $(\'#course\').val(); 是:

window.location.href = \'http://\' + window.location.hostname + \'/wordpress/zoekresultaten?course=\' + selectedcourse;

在wp admin中,我创建了一个名为zoekresultaten 对于页面atributes,我为该页面分配了一个模板来处理所选选项。我在该模板上使用了一个简单的echo命令,它显示了上一页所选选项的值。现在我可以继续处理选择。

1 个回复
SO网友:Qaisar Feroz

我一直在寻找和尝试我找到的许多建议,但到目前为止,似乎没有什么能起到作用。如果可能的话,我想在php中完成这项工作(值需要以美元为单位才能构建db查询)。

您的课程选择下拉列表必须包含在<form> 标记为submit 按钮,像这样

    <?php 
       $course = \'\';
       if(isset($_POST[\'course\'])) $course = $_POST[\'course\'];

          <div class="search-bar-container">

             <form method="POST">

               <div class="drop-down-course">
                  <select class="course" name="course">
                     <option disabled selected value="0"> - gang - </option>
                     <?php
                       // Get all the options from the database for the \'course\' drop down list.
                       $my_course = $wpdb -> get_results( "SELECT term_id, name FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy = \'wprm_course\') " )  ; 
                       if (!empty ($my_course ) ) {
                           foreach ( $my_course as $my_course ) {
                               echo \'<option value ="\' . $my_course -> term_id . \'" \' . selected($my_course -> term_id , $course).\'>\' . $my_course -> name . \'</option>\';
                            }
                       }
                ?>
                   </select>
             </div>

             <input type="submit" value="Go">
          </form>

       </div>


    <?php

          // Get posts using $course as your selected option here
    ?>