Javascript 如何从html5数据库中填充2个组合框

Javascript 如何从html5数据库中填充2个组合框,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我需要一些关于我的代码的帮助-一个电子商店的网络本地系统中的代码 我在phpmyadmin数据库中有一个stoke表 -斯托克表(id、名称、价格、斯托克类型) -stoketype必须具有此类数据(电话、计算机、附件等) 我在html5中有两个组合框和一个文本框 第一个是显示所有斯托克类型 表(工作正常) 第二个是显示斯托克城的所有电子设备(名称) 具有我在第一个组合框中选择的stoketype的表 文本框用于显示电子产品的价格(名称) 在第二个组合框中选择“我的高尔夫”之前,我会有一个结果

我需要一些关于我的代码的帮助-一个电子商店的网络本地系统中的代码

  • 我在phpmyadmin数据库中有一个stoke表
  • -斯托克表(id、名称、价格、斯托克类型)
  • -stoketype必须具有此类数据(电话、计算机、附件等)
  • 我在html5中有两个组合框和一个文本框
  • 第一个是显示所有斯托克类型 表(工作正常
  • 第二个是显示斯托克城的所有电子设备(名称) 具有我在第一个组合框中选择的stoketype的表
  • 文本框用于显示电子产品的价格(名称) 在第二个组合框中选择“我的高尔夫”之前,我会有一个结果 像这样
  • 电话-iphone6s-300$
  • 电话-iPhone7-400$
  • 电脑-hp笔记本电脑15a-600$
  • 问题是,我不知道如何根据第一个组合框中的选定值填充第二个组合框和文本框,因为我不需要连接和组织数据。任何帮助:(

    第一个组合框

    <select class="form-control" name="transt" size="1" id="input3" placeholder="stoke type">  
    
    <?php 
                                            
    $q = "select distinct stoketype from stoke";
    
    $r = @mysqli_query($db, $q);                     
    
    $num = mysqli_num_rows($r);
    
    if($num > 0) {                                                   
    
    while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    $stkn= $row['stoketype'] ;
    
    echo"<option value='".$stkn."' >".$stkn."</option>";
    }
    
    mysqli_free_result ($r);                           
    } ?>
    </select>
    
    
    
    首先,您需要提交在组合框中选择的值,不能仅通过从第一个组合框中选择值来填充第二个组合框和文本框

    这是第一个组合框,我会保持代码不变,但我会添加一些代码

        <?php 
                                        
         $q = "select distinct stoketype from stoke";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
    
          if($num > 0) {                                                   
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
           $stkn= $row['stoketype'] ;
    
           `echo"<option value='".$stkn."' >".$stkn."</option>";
           }
    
           mysqli_free_result ($r);                           
           } ?>
          </select>
    
        <input type="submit" value="Select value from first combobox" name="submit">
    
      <?php
        //second comboxbox depending on value of first comboxbox
       if(isset($_POST["submit"]) && isset($_POST["transt"])){
       $transt=$_POST["transt"]
       $q = "select  * from stoke where stoketype='$trasnt' ";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
          echo "<select>"
          if($num > 0) {                                                   
    
    
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    
    
          $stkname= $row['name'] ;
           $price=$row['price'] ;
    
          echo"<option value='".$stkname."'>".$stkname.'"</option>";
          }}  
          echo "</select>";
          }
          ?>
    

    首先,您需要提交在组合框中选择的值,不能仅通过从第一个组合框中选择值来填充第二个组合框和文本框

    这是第一个组合框,我会保持代码不变,但我会添加一些代码

        <?php 
                                        
         $q = "select distinct stoketype from stoke";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
    
          if($num > 0) {                                                   
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
           $stkn= $row['stoketype'] ;
    
           `echo"<option value='".$stkn."' >".$stkn."</option>";
           }
    
           mysqli_free_result ($r);                           
           } ?>
          </select>
    
        <input type="submit" value="Select value from first combobox" name="submit">
    
      <?php
        //second comboxbox depending on value of first comboxbox
       if(isset($_POST["submit"]) && isset($_POST["transt"])){
       $transt=$_POST["transt"]
       $q = "select  * from stoke where stoketype='$trasnt' ";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
          echo "<select>"
          if($num > 0) {                                                   
    
    
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    
    
          $stkname= $row['name'] ;
           $price=$row['price'] ;
    
          echo"<option value='".$stkname."'>".$stkname.'"</option>";
          }}  
          echo "</select>";
          }
          ?>
    

    非常感谢您的帮助我知道这个解决方案不管怎样问题是我不想刷新页面我用另一种方式思考不请求刷新页面我还没有尝试过,但是如果我在javascript中用stoke名称和值填充两个数组,并且两个数组都有seam id,那么我将尝试添加数据根据id和我想要的值对数组进行操作你认为呢?我以前从未尝试过类似的操作。但我认为你应该对php文件执行XMLHttpRequest并得到响应。我做了,它工作得很好。我只是用javascript创建数组并用数据填充它们,就像创建一个新的数据库,但使用java脚本数组然后我在java脚本中创建一个函数,读取每个数组值,并将其与第一个组合框进行比较,如果值匹配,那么我只需添加一个新选项(节点)到第二个组合框LOL非常感谢您的帮助我知道这个解决方案无论如何问题是我不想刷新页面我用另一种方式思考不请求刷新页面我还没有尝试过,但是如果我用javascript填充两个数组,其中包含stoke名称和值,并且两个数组都有seam id,那么我将尝试add数组中的数据取决于id和我想要的值你认为呢?我以前从未尝试过类似的方法。但我认为你应该对php文件执行XMLHttpRequest并得到响应。我这样做了,效果很好。我只是用javascript创建数组,并用我的数据填充它们,就像创建一个新的数据库,但使用java然后我在java脚本中创建一个函数,读取每个数组值并将其与第一个组合框进行比较,如果值匹配,那么我只需向第二个组合框LOL添加一个新选项(节点)
    
    <script> 
        
        var arr = [];
        var arr2 = [];
        var arr3 = [];
    </script>
    <?php 
    
    $q = "select  * from stoke ";
    
    $r = @mysqli_query($db, $q);                     
    
    $num = mysqli_num_rows($r);
    
    if($num > 0) {                                                   
    
    
    
    while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
        
        
        
        ?>  
        
        <script> arr.push("<?php echo$row['name'];?>");</script>
        <script> arr2.push("<?php echo$row['stoketype'];?>");</script>
        <script> arr3.push("<?php echo$row['price'];?>");</script>
    <?php
    
    function f3(){
        
        var x1 = document.getElementById("input3").value;
        
        var i;
        
        
    var select = document.getElementById("select1");
    var length = select.options.length;
    for (i = length-1; i >= 0; i--) {
      select.options[i] = null;
    }
        
    
        
        for(i=0; i < arr.length; i++)
        {
        if(x1==arr2[i]){
            
    var sel = document.getElementById('select1');
    
    var opt = document.createElement('option');
    
    
    
    // create text node to add to option element (opt)
    opt.appendChild( document.createTextNode(arr[i]) );
    
    // set value property of opt
    opt.value = arr[i]; 
    
    // add opt to end of select box (sel)
    sel.appendChild(opt); 
            
        }}}
    
        <?php 
                                        
         $q = "select distinct stoketype from stoke";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
    
          if($num > 0) {                                                   
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
           $stkn= $row['stoketype'] ;
    
           `echo"<option value='".$stkn."' >".$stkn."</option>";
           }
    
           mysqli_free_result ($r);                           
           } ?>
          </select>
    
        <input type="submit" value="Select value from first combobox" name="submit">
    
      <?php
        //second comboxbox depending on value of first comboxbox
       if(isset($_POST["submit"]) && isset($_POST["transt"])){
       $transt=$_POST["transt"]
       $q = "select  * from stoke where stoketype='$trasnt' ";
    
         $r = @mysqli_query($db, $q);                     
    
          $num = mysqli_num_rows($r);
          echo "<select>"
          if($num > 0) {                                                   
    
    
    
          while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    
    
          $stkname= $row['name'] ;
           $price=$row['price'] ;
    
          echo"<option value='".$stkname."'>".$stkname.'"</option>";
          }}  
          echo "</select>";
          }
          ?>
    
           <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];"?>