从php数组实现2个选择框
我有一个像这样的php数组从php数组实现2个选择框,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我有一个像这样的php数组 $food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday")); 我必须定义两个选择框。第一个选择框我必须选择一个类别。在第二个选择框中,我需要获得子类别的值。如何实施?一种方法是
$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday"));
我必须定义两个选择框。第一个选择框我必须选择一个类别。在第二个选择框中,我需要获得子类别的值。如何实施?一种方法是打印一份包含蔬菜、饼干和水果的主要选择。接下来,您应该将它们的子列表打印为selects。然后,您可以使用jQuery来维护哪些内容应该是可见的:
<?php
$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday"));
echo "<select id='main'>";
foreach ($food as $key => $value) {
echo "<option value='$key'>$key</option>";
}
echo "</select>";
foreach ($food as $key => $value) {
echo "<select class='sublist' id='$key'>";
foreach ($value as $item) {
echo "<option value='$item'>$item</option>";
}
echo "</select>";
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$("#main").change(function () {
$(".sublist").hide();
$("#" + $(this).val()).show();
});
$("#main").trigger("change");
</script>
实时版本:
仅使用PHP
这是我在手机上写的。为错误道歉
$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday"));
echo "<select name='myFood'>";
foreach ($food as $cat)
{
echo "<optgroup label='$cat'>";
foreach ($cat as $foodVal)
{
echo "<option value='$foodVal'>$foodVal</option>";
}
echo "</optgroup>";
}
echo "</select>";
实际上,使用两组for-each将允许您正确地遍历多维数组
optgroup将在selectrelated?no html relatedDeepak中创建标题-那么为什么要给问题添加问号?您不想使用错误的标记,因为这样会引起对您的问题的负面关注。@HovercraftFullOfEels可能很不幸地混淆了java和javascript。@不客气。如果你能将其标记为解决方案,那会有很大帮助。
array_walk($food, function($v,$k) {
echo '<select name="'.$k.'">';
array_walk($v, function($value,$key) {
echo '<option value="'.$value.'">'.$value.'</option>';
});
echo '</select>';
});
$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday"));
echo "<select name='myFood'>";
foreach ($food as $cat)
{
echo "<optgroup label='$cat'>";
foreach ($cat as $foodVal)
{
echo "<option value='$foodVal'>$foodVal</option>";
}
echo "</optgroup>";
}
echo "</select>";