[英]populate select input with array
我想開始說我不想使用Javascript ....
我有一個正確返回的數組我相信,但是我只在下拉列表中的數組顯示中有第一個條目。
這是陣列的問題嗎? 還是有這個功能?
foreach($array as $key=>$value){
$html = "<option value='$key'>$value</key>";
}
echo "<select name="process">$html</select>";
您必須使用連接運算符( .
):
$html = '';
foreach($array as $key => $value)
{
$html.= "<option value='$key'>$value</option>";
}
echo "<select name=\"process\">$html</select>";
但是,查看之前發布的函數, mysql_fetch_assoc
只返回一行。 你需要循環使用它。 以下應該足夠了:
function tasks_list($p_id) {
$project_tasks = array();
$p_id = (int)
$p_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
$result = mysql_query("SELECT task_name FROM tasks WHERE project_id = $p_id");
while($project_tasks = mysql_fetch_assoc($result))
{
$html.= "<option value='".$project_tasks['task_name']."'>".$project_tasks['task_name']."</option>";
}
echo "<select name=\"process\">$html</select>";
}
$html = "";
foreach ($array as $key => $value){
$html .= "<option value='$key'>$value</option>";
}
echo "<select name='process'>$html</select>";
=
重新分配; .=
追加
如果你使用=
它在每次迭代中重新分配$html
,那么$html
將包含最后一次迭代的結果 - 一個選項。
你需要連接字符串。 首先在開始for循環之前將$html
初始化$html
空字符串。
$html = '';
foreach($array as $key => $value)
{
$html .= "<option value='$key'>$value</key>";
// same as $html = $html . "<option value='$key'>$value</key>";
}
注意:您的代碼中還有一個拼寫錯誤:
echo "<select name="process">$html</select>";
應該是:
echo "<select name=\"process\">$html</select>";
要么
echo "<select name='process'>$html</select>";
如果這就是你的意思。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.