0

フォームの選択オプションがあります...これはphpからのエコーの一部であるため、単一引用符が使用されています。

<select>
          <option value='1'>1</option>
          <option value='2'>2</option>
          <option value='3'>3</option>
          <option value='4'>4</option>
          <option value='5'>5</option>
          <option value='6'>6</option>
          <option value='7'>7</option>
          <option value='8'>8</option>
          <option value='9'>9</option>
</select>   

これは問題なく、選択できます....しかし、データベースからデータを取得して、データベース内のレコードに応じてデフォルト値を設定したい(データベースからドロップダウン全体を入力したくない) !) ただし、データベースのオプションが異なる場合でもユーザーが別のオプションを選択できるように、ドロップダウン リストはそのままにしておきます。

このコードを使用してデータベースからデータを取得できますが、これは機能します...しかし、やりたいことを実行させる方法がわかりません...

<option value=". $row['1'] .">". $row['1'].    "</option>

何か案は?

ジェームズ

4

2 に答える 2

1
$selected = 3;
$i = 0;
while( $i < 10 ){
 $i++;

echo "<option value='". $row[ $i ] ."' 
 ".($row[ $i]==$selected?'selected="selected"':"").">". $row[ $i ]."</option>";
}
于 2013-02-01T22:32:18.257 に答える
0

最初に、クエリを使用してデータベースから既定値 (映画や記事などに対するユーザーの評価だと思います) を取得し、次に 10 の異なる可能な値をループ処理します。値がデフォルト値と一致すると、selected='selected' が文字列に追加されます。

echo "<select>";
$result = mysqli_query($db, "SELECT rating FROM movies WHERE user='$user'");
$row = mysqli_fetch_object($result);
for($i = 1;$i => 10;$i++){
    if($i == $row->rating){
        echo "<option selected='selected' value='$i'>$i</option>";
    }else{
        echo "<option value='$i'>$i</option>";
    }
}
echo "</select>";

他の回答と同じことを行いますが、これははるかに読みやすく理解しやすいはずです。(私のように for ループを使用するか、John のように while ループを使用するかは関係ありません。どちらも同じことを行います)

更新:あなたが書いているエコーを削除して私のコードに入れ、MySQLクエリを変更することを忘れないでください。

于 2013-02-01T23:54:31.877 に答える