0

我有一个下拉框,其中分配了值,我正在尝试检索该值并执行 .load 函数并返回该值,但结果并非如此,被检索的值始终是无论选择什么,都位于下拉列表的顶部。

这是我的jQuery

<script>
$(document).ready(function(){
    var inputField= $('#dateslot').val();
  $("#dateslot").change(function(){
    $("#timeslot").load('check.php?dateselect='+inputField);
  });
});
</script>

虽然这是我的下拉框

    <select name="dateslot" style="margin-bottom: 20px;" id="dateslot">
    <option value="notselected">SELECT A DATE</option>
    <?php

    for($i = 1; $i/31 != 1; $i++){
    $date1 = str_replace('-', '/', $vdate);
    $date2 = date('Y-m-d',strtotime($date1 . "+".$i." days"));

    $readdate = date('d F Y', strtotime($date2));
    echo '<option value="'.$date2.'">'.$readdate.'</option>';
    }
    ?>
    </select>

在我的 check.php 中,我使用 $_GET 获得了 dateselect,发现无论我选择什么,结果总是未选中(这是第一个选项)

我尝试剥离该代码,显示的值仍然是列表的第一个,我尝试取出 php 并仅使用选项,结果相同。任何帮助=/?

4

3 回答 3

2

您在页面加载时获得值,但在更改时不会更新它。我刚刚将inputField声明移至更改事件处理程序内部...

$(document).ready(function(){
    $("#dateslot").change(function() {
        var inputField= $(this).val();
        $("#timeslot").load("check.php?dateselect=" + inputField);
    });
});
于 2013-09-19T15:58:48.307 回答
0

您只能在初始页面加载时获得价值。试试这个

<script>
$(document).ready(function(){
  $("#dateslot").change(function(){
    var theField = $(this).find('option:selected').val();
    $("#timeslot").load('check.php?dateselect='+theField);
  });
});
</script>

当 select 发生变化时,此 get 是所选选项的值,然后将其传递给 load 函数。

于 2013-09-19T16:00:56.290 回答
0

您没有检索下拉更改事件的值,因此它始终根据下拉的默认值加载数据,请尝试使用以下脚本

<script>
$(document).ready(function(){
  $("#dateslot").change(function(){
    var inputField= $('#dateslot').val();
    $("#timeslot").load('check.php?dateselect='+inputField);
  });
});
</script>
于 2013-09-19T16:01:42.980 回答