2017-04-07 82 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歡迎您! –