2017-04-07 84 views
0

选择框我有一个PHP阵列这样的..实施2个从PHP阵列

$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday")); 

我必须定义两个选择框。第一个选择框我必须选择一个类别。在第二个选择框中,我需要获取子类别的值。我该如何执行?

+0

[tag:Java]有关吗? –

+0

没有相关的html相关的 –

+1

Deepak - 那么你为什么给这个问题一个[tag:java]的问题标签?您不想使用错误的标签,因为这可能会吸引*负面*注意您的问题。 –

回答

0

我写这我的手机上相同的结果。对错误抱歉。

$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>"; 

实际上,对每一个使用两组将允许您正确地通过多维数组。

optgroup将在选择内部创建标题

+0

非常感谢你..! –

0

这样做的一个方法是用蔬菜,饼干和水果打印主select。接下来,你应该打印出他们的子列表作为选择。然后,你可以使用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> 

直播版本:

http://neil.computer/stack/ex1.php

+0

非常感谢你..!它工作正常 –

+0

@deepakasai不客气。如果你可以标记为解决方案,它会有很大的帮助。 – Neil

0

只使用PHP

$food = array ("Fruits" => array("apple","mango","orange"), "vegies"=> array ("capsicum", "betroot", "raddish"), "bisucuits"=>array("marygold", "britania", "goodday")); 
$out = ""; 
foreach($food as $k => $v) { 
    $out .= '<select name="'.$k.'">'; 
    foreach($v as $value) { 
     $out .= '<option value="'.$value.'">'.$value.'</option>'; 
    } 
    $out .= '</select>'; 
} 
echo $out; 
// output 
<select name="Fruits"> 
<option value="apple">apple</option> 
<option value="mango">mango</option> 
<option value="orange">orange</option> 
</select> 
<select name="vegies"> 
<option value="capsicum">capsicum</option> 
<option value="betroot">betroot</option> 
<option value="raddish">raddish</option> 
</select> 
<select name="bisucuits"> 
<option value="marygold">marygold</option> 
<option value="britania">britania</option> 
<option value="goodday">goodday</option> 
</select> 

检查它Sandbox

编辑 - 使用array_walk

array_walk($food, function($v,$k) { 
    echo '<select name="'.$k.'">'; 
    array_walk($v, function($value,$key) { 
     echo '<option value="'.$value.'">'.$value.'</option>'; 
    }); 
    echo '</select>'; 
}); 
+0

非常感谢你..! –

+0

@deepakasai欢迎您! –