我想根据我从第一个选择中选择的内容来更改第二个选择的选项。再一次,我知道我的代码应该在哪里,我知道我需要一个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>
答案 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 }));
});
}
});
});