Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 列表框中的许多元素相互关联_Javascript_Php_Jquery_Listbox - Fatal编程技术网

Javascript 列表框中的许多元素相互关联

Javascript 列表框中的许多元素相互关联,javascript,php,jquery,listbox,Javascript,Php,Jquery,Listbox,这是我第一次使用这种媒介寻求帮助。我想知道在我的代码中如何包含两个列表框。一个用于查询数据库,并通过一个按钮将其发送给另一个,并使用多个选项执行此操作,然后,如php代码所示,将第二个列表框中的数据放在表数据库中。多谢各位 导师ÍA 新校友登记处 您的表单需要提交一个操作: <form name="form" id="form" action="<?php echo echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>

这是我第一次使用这种媒介寻求帮助。我想知道在我的代码中如何包含两个列表框。一个用于查询数据库,并通过一个按钮将其发送给另一个,并使用多个选项执行此操作,然后,如php代码所示,将第二个列表框中的数据放在表数据库中。多谢各位


导师ÍA
新校友登记处

您的表单需要提交一个操作:

     <form name="form" id="form" action="<?php echo echo htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" method="post"> 
并在

然后你可以返回带有第二个下拉列表的页面,它的构造方式与你创建第一个下拉列表的方式大致相同,使用你从第一个下拉列表返回的数据来创建第二个下拉列表。您可以将第一个下拉列表包装到
isset()

第二个在

        if( isset( $combo1 ) ){
        // make your second select boxes if combo1 returned a value
        }
这样它们只会在需要时出现

正如@NanaPartykar所说,mysqli是唯一的出路

它将依赖于JavaScript,因此,如果您愿意,可以使用submit按钮代替JavaScript函数:

     <input type="submit" name="submit" value="Pick Sizes" />

如果愿意,您可以删除
onChange=“submit();”
并用表单上的正常提交按钮替换它。

停止使用mysql*函数。他们被弃用了。下一件事,你到底想要什么。我想你需要使用会话将第二个组合框的值构建到一个数组中,同时组装主组合框-我会看看我是否能为你构建一个框架。第二级的值在哪里-
$fila[2]]
etc?@ShakaDiocares尝试将新的代码块放在php页面上,看看它能做什么——我希望您能够将您的数据库值放入其中。如果这是你想要的,请告诉我。非常感谢你的回答,但我不能完全理解。我不会说英语,翻译破坏了他们告诉我的一切,如果你能很好地纠正我的代码,我会更好地理解,但非常感谢你。
      $combo1 =  mysqli_real_escape_string( $_POST['combo1'] );
        if( !isset( $combo1 ) ){
        // make your first select boxes 
        }
        if( isset( $combo1 ) ){
        // make your second select boxes if combo1 returned a value
        }
     <input type="submit" name="submit" value="Pick Sizes" />
  <?php session_start(); ?> 
  <!DOCTYPE html>
  <html lang = "es">
  <head>
  <title>PRECEPTORÍA</title>
  </head>
    <body>
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post">
    <?php
    $main_opt = array();
    $_SESSION['opt_vals'] = array();
    $main_opt[0] = "Select Item";      
    $main_opt[1] = "Ice Cream";
    $main_opt[2] = "Trousers";
    $main_opt[3] = "Tee Shirts";
    $_SESSION['opt_vals'][1][0] = "Select Flavour";
    $_SESSION['opt_vals'][1][1] = "Vanilla";
    $_SESSION['opt_vals'][1][2] = "Chocolate";
    $_SESSION['opt_vals'][1][3] = "Strawberry";
    $_SESSION['opt_vals'][1][4] = "Tuttifrutti";
    $_SESSION['opt_vals'][2][0] = "Select Colour";
    $_SESSION['opt_vals'][2][1] = "Black";
    $_SESSION['opt_vals'][2][2] = "Red";
    $_SESSION['opt_vals'][2][3] = "Green";
    $_SESSION['opt_vals'][2][4] = "Blue";
    $_SESSION['opt_vals'][3][0] = "Select Size";
    $_SESSION['opt_vals'][3][1] = "Small";
    $_SESSION['opt_vals'][3][2] = "Medium";
    $_SESSION['opt_vals'][3][3] = "Large";
    $_SESSION['opt_vals'][3][4] = "X Large";
    $i = 0;
    if(!isset($_POST['combo1']) && !isset($_POST['combo2'])){
        echo '<select name="combo1" onChange="submit();">' . "\n";
        //while ($fila = mysqli_fetch_row($consulta)){
        while($i < count($main_opt)){
        echo "<option value='".$i."'>".$main_opt[$i]."</option>\n";       
             $o = 0;
             // load your sub options array here
             if(!$_SESSION['opt_vals'][$i]) $_SESSION['opt_vals'][$i] = array();
             while($i < count($_SESSION['opt_vals'][$i])){
             $_SESSION['opt_vals'][$i] = $o;
             if(!$_SESSION['opt_vals'][$i]) $_SESSION['opt_vals'][$i] = array();
             $_SESSION['opt_vals'][$i][$o] = $_SESSION['opt_vals'][$i][$o];
             $o++;
             }
         $i++;
         }
     echo '</select>'  . "\n";    
     }else{
         if(intval($_POST['combo1']) >= 1) $_SESSION['combo1_val'] = $combo1_val =intval($_POST['combo1']);
         if(intval($_POST['combo1']) >=1){
             $i = 0;
             echo '<select name="combo2" onChange="submit();">' . "\n";
             while($i < count($_SESSION['opt_vals'][$combo1_val])){
             echo "<option value='".$i."'>".$_SESSION['opt_vals'][$combo1_val][$i]."</option>\n";
             $i++;
             }
         }
     echo '</select>'  . "\n";
     }
     if(intval($_POST['combo2']) >= 1) $_SESSION['combo2_val'] = $combo2_val =intval($_POST['combo2']);
     if($_SESSION['combo1_val'] >=1 && $_SESSION['combo2_val'] >=1){
     // use the result to do  whatever you want
     echo 'Thank you! You have selected ' . $_SESSION['opt_vals'][$_SESSION['combo1_val']][$_SESSION['combo2_val']] . " " . $main_opt[$_SESSION['combo1_val']] . '.';
     }    
     // Do any mysqli adjustments to your database here
     // reset to go again
     if($_SESSION['combo2_val'] >= 1){
     $_SESSION['combo1_val'] = 0; 
     $_SESSION['combo2_val'] = 0;
     }
     ?>
             </form>
             <a href="<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?>">Click to start a new selection</a>
          </body>
     </html>