【问题标题】:How to create two dependent html dropdown list using php arrays and/or sql如何使用 php 数组和/或 sql 创建两个依赖的 html 下拉列表
【发布时间】:2015-02-20 20:34:59
【问题描述】:

所以我需要创建两个下拉列表,其中第二个列表依赖于第一个。例如:

在第一个列表中,我可能有这样的选项:

  • 一个
  • B
  • C
  • D

当用户选择 A 时,他将根据第一个下拉菜单在第二个下拉菜单中选择其他选项。因此,如果用户在第一个列表中选择 A,则第二个列表中的选项可能是:

  • A-1
  • A-2
  • A-3

如何在 php 和 html 中做到这一点?我必须使用多维数组吗?也许数据库?我如何检测用户在第一个列表中选择的内容并在第二个列表中为他提供适当的选项?

【问题讨论】:

  • 根据范围的不同,您可能希望使用AJAXPHP 的组合,但您可以只用php 完成所有操作。
  • 这是一个广泛的问题,@shone。如果列表的内容来自数据库,您的解决方案将涉及 JavaScript,可能是 AJAX,可能涉及数据库。听起来可能是这样,因为第二个列表取决于第一个列表中选择的过滤条件。等等。
  • 这样的多维数组怎么样:$data = ['A'=> ['A-1', 'A-2']];是否可以在一个下拉列表中输出第一个数组(A,B,C),在另一个下拉列表中输出第二个数组(A-1,A-2,B-1,B-2)?不知何故... ?编辑:但是当用户首先选择 A 时,第二次只获得 A-1, A-2...

标签: php html list multidimensional-array


【解决方案1】:

只有使用 HTML 和 PHP,您才能使用这样的多维数组来做到这一点:

<?php
$list = array(
    "A" => array("A-1", "A-2", "A-3"),
    "B" => array("B-1", "B-2"),
    "C" => array("C-1"),
    "D" => array("D-1", "D-2", "D-3", "D-4"),
);
?>

<form>
    <select name="first_input">
        <?php foreach ($list as $first => $second) { ?>
            <option><?php print ($first); ?></option>
        <?php } ?>
    </select>
    <input type="submit">
</form>

<?php if (isset($_GET["first_input"])) { ?>

    <form>
        <select name="second_input">
            <?php foreach ($list[$_GET["first_input"]] as $second) { ?>
                <option><?php print ($second); ?></option>
            <?php } ?>
        </select>
    </form>

<?php } ?>

【讨论】:

    【解决方案2】:

    前几天我用多维数组做了一个。

    var options = {
        "Option 1" : [ "1A","1B","1C" ],
        "Option 2" : [ "2A","2B","2C" ],
        "Option 3" : [ "3A","3B","3C" ]
    }
    

    然后是这样的:

    jQuery:

    $.each(options,function(a,b){
        $('#select1').append('<option>'+a+'</option>');
    });
    
    $('#select1').change(function(){
        var sel1 = $(this).val();
        $.each(option[$sel1],function(a,b) {
            $('#select2').append('<option>'+b+'</option>');
        });
    });
    

    (这是概念......这个实际的语法可能会或可能不会出错。)

    【讨论】:

    • 这是正确的想法是的,没有解决如何从 PHP 中获取选项,.append 可能无法工作,具体取决于 &lt;select&gt; 结构(默认 &lt;option value=''&gt;&lt;/option&gt; 存在?)等,但正确的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多