从php数组实现2个选择框

从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")); 我必须定义两个选择框。第一个选择框我必须选择一个类别。在第二个选择框中,我需要获得子类别的值。如何实施?一种方法是

我有一个像这样的php数组

$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将在select

related?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>";