使用JavaScript </select> </option>在<select>中查找所选的<option>

时间:2013-10-01 20:04:02

标签: javascript jquery html twitter-bootstrap

我想知道有人点击特定的选择选项。这是一个搜索表单,我希望用户能够在日期之间搜索,所以如果他们选择在日期之间搜索的选项,那么它将显示第二个日期搜索字段。我使用bootstrap datepicker作为日期输入

以下是我的HTML示例:

<select name="select_menu" id="select_field">
    <option value="select_one">Please Select One</option>
    <option value="search_between_dates">Search Between Two Dates</option>
</select>
<input type="text" name="date" id="dpd1" class="dpd1">
<div id="select_feed"></div>

PHP示例:

if(isset($_GET['filter'])) {
    $filter = mysql_real_escape_string($_GET['filter']);
    if($filter == 'search_between_dates') {
        $date1 = $_GET['date'];
        $date2 = $_GET['date2'];
        $query = "SELECT * FROM table WHERE date BETWEEN '".$date1."' AND '".$date2."';
        // So on and so forth
    } elseif($filter == '') {
        //So on and so forth
    }
} else {}

2 个答案:

答案 0 :(得分:1)

您可以使用javascript获取所选的选项索引/值,然后从那里进行处理。

selectBox = document.getElementById("select_field");
currentIndex = selectBox.selectedIndex;
currentValue = selectBox[currentIndex].value;
//Continue processing as you need

根据您的需要,它将为您提供当前用户选择的选项的索引值以及“值”属性的内容。

另一方面,您的代码对SQL注入攻击是可以理解的,如果这是一个新项目,您应该考虑在常规mysql_ *函数集上使用MySQLi库。他们不再受到支持,我相信他们也被弃用了。

答案 1 :(得分:0)

像这样更改HTML:

<select name="select_menu" id="select_field">
    <option value="select_one">Please Select One</option>
    <option value="search_between_dates">Search Between Two Dates</option>
</select>
<input type="text" name="date" id="dpd1" class="dpd1">
<input type="text" name="date2" id="dpd2" class="hidden">
<div id="select_feed"></div>

然后你可以使用一些jquery来显示第二个输入:

$( document ).ready( function() {
  $('#select_field').change(function() {
    if ($('#select_field').val() == "search_between_dates") {
      $('#dpd2').show();
    }
  });
});

注意:我实际上没有测试代码,因此可能会隐藏一些细微的语法错误。