0

ここに私のデータがあります:

select * from extension;
+---------+-------+
| ext_num | name  |
+---------+-------+
|  574324 | joe   |
|  564334 | sarah |
|  987652 | pete  |
+---------+-------+
3 rows in set (0.00 sec)

挿入しようとしています

selected="selected"

テーブルをループしながら動的に。

<?php

$mysqli = new mysqli("localhost", "user", "pass", "db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if ($result = $mysqli->query("SELECT * FROM extension")) {
 print "<select>\n<option>select a value</option>\n";
    while ($row = $result->fetch_assoc()) 
{
        printf ("<option value=\"%s\">%s</option>\n", $row["ext_num"], $row["name"]);
    }
 print '</select>';
}
?>

以下を実装する最も簡単で効率的な方法は何ですか?

<option value="987652" selected="selected">pete</option>

(特に: selected="selected")

上記のようなコードを使用して私のループに?

4

2 に答える 2

0

特定のポスト変数をチェックPOSTする条件をループに入れることができるから、選択された行を取得すると仮定しますwhile

<?php

    $name = $_POST['name'];

    while ($row = $result->fetch_assoc()) 
    {
        if ($name==$row["name"])
            echo '<option value="'.$row["ext_num"].'" selected="selected">'.$row["name"].'</option>';
        else
            echo '<option value="'.$row["ext_num"].'">'.$row["name"].'</option>';
    }
?>
于 2013-08-20T21:00:09.417 に答える
0

このコードを使用できます:

<?php

$mysqli = new mysqli("localhost", "cookie", "pass", "test_intranet");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$selItem = 987652 ;
if ($result = $mysqli->query("SELECT CONCAT('<option value=\"',`ext_num `,'\" ',IF(ext_num=$selItem,'selected=\"\"',' '),'>',`name`,'</option>') AS 'row' FROM extension")) {
 print "<select>\n<option>select a value</option>\n";
    while ($row = $result->fetch_assoc()) 
{
       echo $row['row'] ;
    }
 print '</select>';
}
?>

パフォーマンスを向上させるには、クエリで連続して selected="" を使用します。

于 2013-08-20T20:48:31.550 に答える