更改php中的选择值

时间:2017-10-11 04:22:55

标签: javascript php select

我正在创建一个具有2个彼此互连的选择列表的界面,所以我想要的是:

如果用户在类别保管箱中选择了一个选项,则第二个选择列表将显示该类别中的所有选项。

<hmtl>
<label>Section</label>
<select class="form-control selcls" name="txtsection" id="txtsection" >                                                                                 
<?php
 while ($rows = mysqli_fetch_array($queryResultsec)) { ?>
<option value="<?php echo $rows['Gradelvl_ID'];?>"><?php echo 
$rows['Section_Name'];?></option>
<?php   }
             ?>              
    </select> 


 <label>Section</label>
 <select class="form-control selcls" name="txtsection" id="txtsection" >
 <?php
 while ($rows = mysqli_fetch_array($queryResultsec)) {?>
 <option value="<?php echo $rows['Gradelvl_ID'];?>"><?php echo 
 $rows['Section_Name'];?></option>   <?php  }
             ?>              
    </select>      
</hmtl> 

3 个答案:

答案 0 :(得分:0)

试用此代码:

&#13;
&#13;
$("#select1").change(function() {
  if ($(this).data('options') === undefined) {
    /*Taking an array of all options-2 and kind of embedding it on the select1*/
    $(this).data('options', $('#select2 option').clone());
  }
  var id = $(this).val();
  var options = $(this).data('options').filter('[value=' + id + ']');
  $('#select2').html(options);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select name="select1" id="select1">
      <option value="1">Fruit</option>
      <option value="2">Animal</option>
      <option value="3">Bird</option>
      <option value="4">Car</option>
    </select>


<select name="select2" id="select2">
      <option value="1">Banana</option>
      <option value="1">Apple</option>
      <option value="1">Orange</option>
      <option value="2">Wolf</option>
      <option value="2">Fox</option>
      <option value="2">Bear</option>
      <option value="3">Eagle</option>
      <option value="3">Hawk</option>
      <option value="4">BWM<option>
    </select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

做一件事 1 - 保持第二次下拉空。 2 - 调用jquery ajax以获得更改时的第一个下拉值 创建一个新页面,其中只有数据库连接被限制在sql之后,相对于第一个下拉列表选择值 3 - 获取对ajax方法的响应并获得输出

答案 2 :(得分:0)

我根据你的问题拿了一些写代码。在写这篇文章时,我假设你在两个表之间存在关系,你已经存储了类别和选项。我假设关系正在使用“Gradelvl_ID”。我还假设你对JavaScript,jQuery和AJAX有一些了解。

基于此,我创建了以下代码。

这将是您的选择区域。

<hmtl>
    <head>
        <script   src="https://code.jquery.com/jquery-3.2.1.min.js"   integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="   crossorigin="anonymous"></script>
    </head>
    <body>
        <label>Section</label>
        <select class="form-control selcls" name="txtsection" id="cat" >
            <?php
                while ($rows = mysqli_fetch_array($queryResultsec)) { ?>
                    <option id="<?php echo $rows['Gradelvl_ID'];?>"><?php echo $rows['Section_Name'];?></option>
            <?php   }   ?>
        </select>
    <label>Section</label>
        <select class="form-control selcls" name="txtsection" id="options" ></select>
    </body>    
</html>

此脚本使用的是jQuery,因此您需要将jQuery库链接到上一页。您也可以使用<script></script>标记将此脚本放在第一页内,也可以单独附加为.js文件。

$(document).ready(function(){
    $(document).on('change', '#cat', function(){
        $.ajax({
            url: 'getOptions.php',
            type: 'get',
            data: {
                catId: $(this).prop('id')
            }
        }).then(function (response) {
            $('#options').html(response);
        });
    });
})

上面的代码会将选定的ID发送到getOptions.php,其中包含PHP,以根据您选择表中发送的ID号选择所有选项。然后,如果选择成功,它将返回将由上面的AJAX代码捕获的数据,并在第二个下拉列表中绘制选项。

<?php
include_once('dbconnect.php');

//I'm not a big mysqli user
if(!empty($_GET["id"])){
    $results = $conn -> prepare("SELECT * FROM <your table name> WHERE id = ?");
    $results -> bind_param('i', $_GET["id"]);
    $results -> execute();
    $rowNum = $results -> num_rows;

    if ($rowNum > 0){
        while($optRows = $results -> fetch_assoc()){ ?>
            <option id="<?php echo $rows['Gradelvl_ID'];?>"><?php echo $rows['Section_Name'];?></option>
        <?php
        }
    }
}?>

另外,请注意上面的代码。我正在使用准备好的陈述,这是一个非常好的习惯。查阅here

正如我所说,我假设代码的一部分并使用了您提供的信息,我希望您做更多的研究并使上面的代码适合您。