Php 记住从“链接”下拉列表中选择的值

Php 记住从“链接”下拉列表中选择的值,php,javascript,mysql,drop-down-menu,chained,Php,Javascript,Mysql,Drop Down Menu,Chained,我有一个链式下拉菜单,里面有我数据库中的数据 这就是它的样子: func.php <?php //************************************** // Page load dropdown results // //************************************** function getTierOne() { $result = mysql_query("SELECT DISTINCT make FROM

我有一个链式下拉菜单,里面有我数据库中的数据

这就是它的样子:

func.php

<?php
//**************************************
//     Page load dropdown results     //
//**************************************
function getTierOne()
{
    $result = mysql_query("SELECT DISTINCT make FROM vehicles ORDER BY make ASC") 
    or die(mysql_error());

      while($tier = mysql_fetch_array( $result )) 

        {
?>
<option value="<?php echo $tier['make'];?>"<?php echo (isset($_POST['drop_1']) && $_POST['drop_1'] == $tier['make']) ? ' selected="selected"' : '' ; ?>><?php echo $tier['make'];?></option>
<?php

        }

}

//**************************************
//     First selection results     //
//**************************************
if (isset($_GET['func'])&& $_GET['func'] == "drop_1" ) {
drop_1($_GET['drop_var']);
}

function drop_1($drop_var)
{  
    include_once('db.php');
    $result = mysql_query("SELECT DISTINCT model FROM vehicles WHERE make='$drop_var' ORDER BY model") 
    or die(mysql_error());

    echo '<select name="drop_2" id="drop_2">
          <option value=" " disabled="disabled" selected="selected">Selecteer Model</option>';

           while($drop_2 = mysql_fetch_array( $result )) 
            {
              echo '<option value="'.$drop_2['model'].'">'.$drop_2['model'].'</option>';
            }

    echo '</select>';
    echo "<script type=\"text/javascript\">
$('#wait_2').hide();
    $('#drop_2').change(function(){
      $('#wait_2').show();
      $('#result_2').hide();
      $.get(\"func.php\", {
        func: \"drop_2\",
        drop_var: $('#drop_1').val(),
        drop_var2: $('#drop_2').val()
      }, function(response){
        $('#result_2').fadeOut();
        setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>";
}

//**************************************
//     Second selection results     //
//**************************************
if (isset($_GET['func'])&& $_GET['func'] == "drop_2" ) {
drop_2($_GET['drop_var'], $_GET['drop_var2']);
}

function drop_2($drop_var, $drop_var2)
{  
    include_once('db.php');
    $result = mysql_query("SELECT DISTINCT year FROM vehicles WHERE make='$drop_var' AND model='$drop_var2'") 
    or die(mysql_error());

    echo '<select name="drop_3" id="drop_3">
          <option value=" " disabled="disabled" selected="selected">Selecteer Jaar</option>';

           while($drop_3 = mysql_fetch_array( $result )) 
            {
              echo '<option value="'.$drop_3['year'].'">'.$drop_3['year'].'</option>';
            }

    echo '</select>';
    echo "<script type=\"text/javascript\">
$('#wait_3').hide();
    $('#drop_3').change(function(){
      $('#wait_3').show();
      $('#result_3').hide();
      $.get(\"func.php\", {
        func: \"drop_3\",
        drop_var: $('#drop_1').val(),
        drop_var2: $('#drop_2').val(),
        drop_var3: $('#drop_3').val()
      }, function(response){
        $('#result_3').fadeOut();
        setTimeout(\"finishAjax_tier_four('result_3', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>";
}

//**************************************
//     Third selection results     //
//**************************************
if (isset($_GET['func'])&& $_GET['func'] == "drop_3" ) {
drop_3($_GET['drop_var'], $_GET['drop_var2'], $_GET['drop_var3']);
}

function drop_3($drop_var, $drop_var2, $drop_var3)
{  
    include_once('db.php');
        $result = mysql_query("SELECT DISTINCT color FROM vehicles WHERE make='$drop_var' AND model='$drop_var2' AND year='$drop_var3'") 
    or die(mysql_error());  

    echo '<select name="drop_4" id="drop_4">
          <option value=" " disabled="disabled" selected="selected">Selecteer Kleur</option>';

           while($drop_4 = mysql_fetch_array( $result )) 
            {
                if ($drop_4['color'] != "") {
              echo '<option value="'.$drop_4['color'].'">'.$drop_4['color'].'</option>';
                }
            }

    echo '</select>';
    echo "<script type=\"text/javascript\">
$('#wait_4').hide();
    $('#drop_4').change(function(){
      $('#wait_4').show();
      $('#result_4').hide();
      $.get(\"func.php\", {
        func: \"drop_4\",
        drop_var: $('#drop_1').val(),
        drop_var2: $('#drop_2').val(),
        drop_var3: $('#drop_3').val(),
        drop_var4: $('#drop_4').val()
      }, function(response){
        $('#result_4').fadeOut();
        setTimeout(\"finishAjax_tier_five('result_4', '\"+escape(response)+\"')\", 400);
      });
        return false;
    });
</script>";
}

//**************************************
//     Fourth selection results     //
//**************************************
if(isset($_GET['func'])&& $_GET['func'] == "drop_4" ) {
drop_4($_GET['drop_var'], $_GET['drop_var2'], $_GET['drop_var3'], $_GET['drop_var4']);
}
function drop_4($drop_var, $drop_var2, $drop_var3, $drop_var4)
{  
    include_once('db.php');
        $result = mysql_query("SELECT * FROM vehicles WHERE make='$drop_var' AND model='$drop_var2' AND year='$drop_var3' AND color='$drop_var4'") 
    or die(mysql_error());  



           while($drop_5 = mysql_fetch_array( $result )) 
                {
                if ($drop_5['img'] != "") {
              echo '<input type="checkbox" name="drop_5" id="drop_5" style="display:none;" checked value="'.$drop_5['img'].'"/>';

                }
  }
    echo '<input type="submit" name="submit" value="Submit" />';
}

?>


我想你可以这样做

<select id="sel1">
    <option value="<?php echo $tier['make'];?>"><?php echo $tier['make'];?></option>
</select>

<script>
    var select = document.getElementById('sel1');
    select.value = <?php echo $tier['make']); ?>
    if (select.selectedIndex != 0) {
        select.style.display = '';  // Show the element
    }
</script>

var select=document.getElementById('sel1');

select.value=不要将JavaScript与Java混淆。你说的“非此即彼”是什么意思?在我提交了所选的值之后,我必须从第一个下拉列表开始。。。因此,我必须再次选择Make/Model/Year和Color,以便仅更改同一辆车的颜色。。。对不起,我没读好。。。我是说。。。第二个下拉列表在您选择了第一个下拉列表中的某些内容后显示,依此类推。。。这就是我所说的“一个接一个”的意思,我想一次显示所有的下拉列表。嗨,那不行。。。其他下拉框在我提交后仍然不见了。。。所以我甚至看不出他是否记得输入值\@user1511766如果你能得到服务器上每个下拉列表的值,你应该能够使用你所做的逻辑来选择之前选择的选项,并且通过在回显选择标记后添加JS代码来确保它们可见。@user1511766我甚至建议,不要使用条件语句来选择选项,而是使用javascript方式,如答案所示。
<option value="<?php echo $tier['make'];?>"<?php echo (isset($_POST['drop_1']) && $_POST['drop_1'] == $tier['make']) ? ' selected="selected"' : '' ; ?>><?php echo $tier['make'];?></option>
<select id="sel1">
    <option value="<?php echo $tier['make'];?>"><?php echo $tier['make'];?></option>
</select>

<script>
    var select = document.getElementById('sel1');
    select.value = <?php echo $tier['make']); ?>
    if (select.selectedIndex != 0) {
        select.style.display = '';  // Show the element
    }
</script>