我有一个允许多个选择的组合框,我有另一个组合框。
根据从第一个组合框中选择的值,我需要在第二个组合框中显示它们。
我的需求场景看起来很像这个例子,让第一个组合框包含所有状态的列表。每当选择一个州时,该州的所有城市都将从数据库中获取并显示在第二个组合框中。
如果我们在第一个组合框中选择多个项目(状态)。所选州的城市应显示在第二个组合框中。
通过存储在数组中选择的所有项目,我想到了一个解决方案。我不确定如何实现它。如果有人提供一个有效的例子,那将会有很大的帮助。
我是PHP的新手,因此很难实现。如果有人提供一个有效的例子,那将会有很大的帮助。
答案 0 :(得分:0)
在您的州复选框中使用数组后缀。这是一个小例子。这是非常基本的,但显示了这个想法。
<form method="post">
<table><tr><td>
<?
// Sample array, you should use database query instead
$statesArr = array('FL'=>'Florida','CA'=>'California','NY'=>'New York');
foreach ($statesArr as $stateCode => $stateName) {
$checked = (count($_POST['states']) && in_array($stateCode,$_POST['states']))?'checked="checked"':''; // rechecking selected checkboxes
echo '<label><input type="checkbox" name="states[]" value="'.$stateCode.'" '.$checked.'/>'.$stateName.'</label><br />';
}
?>
</td><td>
<? if ($_POST && count($_POST['states'])) {
echo '<select multiple="multiple">';
$sql = "SELECT `CityName` FROM `Cities` WHERE `ParentStateCode` IN ('".implode("','",$_POST['states'])."')";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
echo '<option>'.$row['CityName'].'</option>';
}
echo '</select>';
}
?>
</td>
</tr></table>
<input type="submit" />
</form>