【问题标题】:Need chained select boxes to ALL appear before selecting values for the first select box在为第一个选择框选择值之前,需要链式选择框全部出现
【发布时间】:2012-03-01 05:09:57
【问题描述】:

我的链接选择框目前工作正常。第一个选择框是车辆品牌或vmake,第二个框是车辆型号或vmodel。现在,只有在页面加载时才会出现 vmake 选择框,并且只有在您为 vmake 选择了值后才会出现 vmodel 框。我的客户希望在页面加载时出现 vmodel 和 vmake 选择框(即使在用户从 vmake 进行选择之前 vmodel 框是空的)。听起来很傻,但客户确实想要这样。

这是来自主页的jquery代码

 <script type="text/javascript">$(document).ready(function() {
    $('#wait_1').hide();
    $('#vmake').change(function(){
      $('#wait_1').show();
      $('#result_1').hide();
      $.get("func.php", {
        func: "vmake",
        drop_var: $('#vmake').val()
      }, function(response){
        $('#result_1').fadeOut();
        setTimeout("finishAjax('result_1', '"+escape(response)+"')", 400);
      });
        return false;
    });
});
function finishAjax(id, response) {  $('#wait_1').hide(); $('#'+id).html(unescape(response));
$('#'+id).fadeIn();
}
</script>

这是调用 php 页面的 HTML

<select name="vmake" id="vmake">

  <option value="" selected="selected">Make</option>

  <?php getTierOne(); ?>

</select> 

<span id="wait_0">
</span>
<span id="result_1"></span>

这是调用我的数据库的 getTierOne 的 php 脚本

function getTierOne(){$result = mysql_query("SELECT DISTINCT vmake FROM vmake") 
or die(mysql_error());

  while($tier = mysql_fetch_array( $result )) 

    {
       echo '<option value="'.$tier['vmake'].'">'.$tier['vmake'].'</option>';
    }}

最后这是 php 的其余部分

 if($_GET['func'] == "vmake" && isset($_GET['func']))
 {vmake($_GET['drop_var']); 
}
function vmake($drop_var)
{  
include_once('db.php');
    $result = mysql_query("SELECT * FROM vmake WHERE vmake='$drop_var'") 
    or die(mysql_error());

    echo '<select name="vmodel" id="vmodel" style="width:242">
          <option style="width:242" value=" " selected="selected">Model</option>';

           while($drop_2 = mysql_fetch_array( $result )) 
            {
              echo '<option style="width:242" value="'.$drop_2['vmodel'].'">'.$drop_2['vmodel'].'</option>';
            }

    echo '</select> ';}

我不确定我需要更改什么才能在页面加载时显示 vmodel 框。感谢您的任何建议,对不起,很长的问题。

【问题讨论】:

  • 我认为您的代码没有问题,您只需调用 vmake 函数,因为它会从那里回显 vmodel,只是该函数需要 drop_var 参数才能工作。 :)
  • 那么我要对代码进行哪些更改才能做到这一点?我正在学习,谢谢。
  • 在页面上为您的 vModel 创建一个下拉列表,该下拉列表在页面上可见。调用 vModel 的 AJAX onchange 并从响应中获取下拉选项并将选项添加到 vModel 下拉列表中。
  • 如果我使用 AJAX 想法(这是一个好想法),我将不得不重新设计整个东西。我只是想知道那里是否有一个简单的修复,或者如果我添加了一个在页面上可见的 vModel,我将如何更改此代码以仅更新它而不是回显一个全新的 vmodel
  • 在您希望显示 vmodel 的部分调用 vmake,并在其上包含默认 vmake,就像 @Rookieatthis 建议的那样创建一个全新的 vmodel 选择元素

标签: php jquery select chained


【解决方案1】:
     A dropdown inside another dropdown? Is that posible?

    <select name="vmake" id="vmake">

        <option value="" selected="selected">Make</option>

           <?php getTierOne(); ?> //this function will output   

          "<select name="vmake" id="vmake">
          <option value="" selected="selected">Make</option>
         </select>"

     </select> 

【讨论】:

    猜你喜欢
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    相关资源
    最近更新 更多