从另一个选择中更改选择标记中的选项

时间:2014-01-12 05:14:53

标签: javascript php jquery html

我想根据我从第一个选择中选择的内容来更改第二个选择的选项。再一次,我知道我的代码应该在哪里,我知道我需要一个if语句,还有很多,如果不是,但我现在陷入了php。例如,如果我选择“Acura”,我的$ modele_acura将显示在我的第二个选择标记中。

(感谢大家,许多初学者程序员,就像我自己一样,应该非常感谢所有帮助人员,提前感谢!)

<?php
$marques = array(
    'Acura',
    'Aston Martin',
    'Audi',
    'Bentley',
    'BMW',
    'Buick',
    'Cadillac',
    'Chevrolet',
    'Chrysler',
    'Dodge',
    'Ferrari',
    'Fiat',
    'Ford',
    'GMC',
    'Honda',
    'Hyundai',
    'Infiniti',
    'Jaguar',
    'Jeep',
    'Kia',
    'Lamborghini',
    'Land Rover',
    'Lexus',
    'Lincoln',
    'Lotus',
    'Mazda',
    'Mercedes-Benz',
    'MINI',
    'Mitsubishi',
    'Nissan',
    'Pontiac',
    'Porsche',
    'Ram',
    'Saab',
    'Saturn',
    'Scion',
    'Smart',
    'Subaru',
    'Suzuki',
    'Toyota',
    'Volkswagen',
    'Volvo'
    );

    $modele_acura = array(
    '1',
    '2',
    );

    $modele_aston = array(
    '3',
    '4',
    );
?>

<body>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
        <select id="marque" name="marque">
            <option></option>
            <?php
            foreach($marques as $marque => $value)
            {
                echo '<option value="'.$marque.'">'.$value.' </option>';
            }
            ?>
        </select>
        <select>
            <option></option>
            <?php
                echo '<option value=""></option>';
                            // I AM STUCK HERE :(
            ?>
        </select>
    </form>
</body>

1 个答案:

答案 0 :(得分:2)

$modele_XXX数组更改为单个关联数组:

$modele = array('acura' => array(1, 2),
                'aston' => array(3, 4),
                ...
                );

将您的HTML更改为:

<body>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
        <select id="marque" name="marque">
            <option></option>
            <?php
            foreach($marques as $marque => $value)
            {
                echo '<option value="'.$marque.'">'.$value.' </option>';
            }
            ?>
        </select>
        <select id="modele" name="modele">
        </select>
    </form>
</body>

在上面分配$modele后的某个时候,将这个jQuery代码添加到PHP脚本中。

$(function() {
    var modele = <?php echo json_encode($modele); ?>; // Convert PHP array to Javascript
    $("#marque").change(function() {
        $("#modele").html("<option/>"); // Initial empty value
        var selected_modele = $(this).val();
        if (selected_modele) {
            var modele_vals = modele[selected_modele.toLowerCase()];
            $.each(modele_vals, function(i, elem) {
                $("#modele").append($("<option/>", { value: elem, text: elem }));
            });
        }
    });
});