簡體   English   中英

使用數組填充選擇輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM