0

誰かが私を助けてくれないかと思っていました。連想配列を繰り返し処理し、結果を 2 つのコンボ ボックスに入れたいと考えています。コンボ ボックスには、互いにまったく同じデータが含まれます。

while ($this->results = $this->dbhandle->fetch(PDO::Fetch_Assoc))
{
    echo "<option value='" . $this->result['id] . "'>" 
               . $this->result['name'] . "</option>";
}

2 つの別々のコンボボックスに対してこのループを 2 回実行する必要がありますか、それとももっと効率的な方法がありますか?

4

3 に答える 3

2

この状況での最善の策は、テキストを文字列に蓄積し、それを 2 回エコーすることです。

$options = "";
while ($this->results = $this->dbhandle->fetch(PDO::Fetch_Assoc))
{
    $options.= "<option value='" . $this->result['id] . "'>" 
               . $this->result['name'] . "</option>";
}

echo "<select name='combo1'>".$options."</select>";
echo "<select name='combo2'>".$options."</select>";
于 2013-07-02T22:49:43.767 に答える
0

このようなものはどうですか(アイデアを与える生のコード):

while
{
    $combo_options .= "<option>" ....// rest of your code
}

次に、selects 内の変数を出力します。

<select id="combo1"><?=$combo_options?></select>
<select id="combo2"><?=$combo_options?></select>
于 2013-07-02T22:48:22.193 に答える
0

出力を変数としてキャプチャし、必要に応じてエコーすることができます

while ($this->results = $this->dbhandle->fetch(PDO::FetchAssoc)){
     $output .= "<option value='" . $this->result['id'] . "'>" . $this->result['name'] . "</option>";
}

/// later on in your script

print $output;
于 2013-07-02T22:48:44.880 に答える