Передача значения 2 из раскрывающегося списка 2 в третий раскрывающийся список - PullRequest
0 голосов
/ 21 мая 2019

Я пытался передать значение в 3-м выпадающем меню, но он не получил ничего из этого он не показывает ошибку, но он не получает никаких данных из 2 выпадающих списков. Я новичок в том, чтобы просто, и я пытаюсь что-то, но это не работает на всех, пожалуйста, помогите большое спасибо dropdown.php

<select class="form-control" style="font-size: 21px;" name="Building" id="Building" onChange="change_floor(this.value)">
          <option>Select</option>
               <?php
              $res=mysqli_query($conn,"select * from Building");
            while($row=mysqli_fetch_array($res)){
                ?>
    <option  value="<?php echo $row['Building']; ?>"><?php echo $row['Building'];?></option>
              <?php
                 }
                ?>
               </select>

     <select class="form-control" style="font-size: 21px;" name="floor" id="Floor" onChange="change_floor(this.value)">
         <option>Select</option>
       <?php
      $res=mysqli_query($conn,"select * from floor");
      while($row=mysqli_fetch_array($res)){
         ?>
      <option  value="<?php echo $row['Floor']; ?>"><?php echo $row['Floor'];?></option>
         <?php
           }
         ?>
      </select>
            <div id="Dept"></div>
              </div>

</div>
      <script type="text/javascript ">
              function change_floor(str,str1) {

if (str.length == 0) { 
    document.getElementById("Dept").innerHTML = "";
    return;
} else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Dept").innerHTML = this.responseText;
        }
    };
    xmlhttp.open("GET", "deptajax.php?q="+str+"&d="+str1, true);
    xmlhttp.send();
}
 }


  </script>

deptajax.php Если я использую запрос здесь, я показываю ошибку, но если я использую GET, я не показываю никакой ошибки, что больше подходит для этого сценария?

      <?php
      $link=mysqli_connect("localhost","id5592115_retep","Password");
      mysqli_select_db($link,"id5592115_admin");

      $q = $_REQUEST["q"];
      $d = $_REQUEST["d"];

$res=mysqli_query($link,"select * from depttable where Flr='$d' and 
    Building='$q' order by deptname asc");
echo "<form method='get' action='table2.php'>";
echo '
<select class="form-control" style="font-size: 21px;" name="dept">
';
while ($row=mysqli_fetch_array($res)) {
$deptid = $row['deptid'];
$deptname = $row['deptname'];
echo "<option value='".$deptname."'>".$deptname."</option>";
}
echo "</select>";
echo '<button type="submit" class="btn btn-light 
    btnmove">Submit</button>';
echo "</form>";
    ?>

1 Ответ

0 голосов
/ 21 мая 2019

Ваша функция onclick вызывается каждый раз, когда вы select выпадаете в любом из раскрывающихся списков, поэтому за один раз передается только одно значение, т. Е. Либо str, либо str1 будет иметь значение.Вместо этого, чтобы избежать этого, вы можете сделать следующее:

Когда выбран первый selectbox, попробуйте store его значение в некоторой переменной, как показано ниже:

    <select class="form-control" style="font-size: 21px;" name="floor" id="Floor" 
onChange="change_floor1(this.value)">
                 <!--^ make another function  with name change_floor1-->
             <option>Select</option>
          ...
          </select>

Затем в вашем <script></script> сделать, как показано ниже:

 var s; // declare globally 
 function change_floor1(str) {
   s=str; //assigning value of first-select box in "s"
  }
  function change_floor(str1) {

if (str1.length == 0) { 
    document.getElementById("Dept").innerHTML = "";
    return;
} else {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Dept").innerHTML = this.responseText;
        }
    };
   //passing both value 
    xmlhttp.open("GET", "deptajax.php?q="+s+"&d="+str1, true);
    xmlhttp.send();
}
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...