-1

option=selected の使用方法について PHP と HTML のチュートリアルに従っていましたが、混乱しています。

これが私のコードです:

<form name ="rating" method ="POST" action ="" /> 
<? echo "<input type = \"hidden\" name = accountID value = " . $row['accountID'] . ">";?>
<select name="rating">
    <? $values = array('','Very Bad','Bad','Average','Above Average');

    for ($i =0; $i < count($values); $i = $i + 1){
        echo "<option value = \"$i\"" . if ($rating == $i + 1) {echo "selected";} . "> $values[$i] </option>"; 
    }    
    ?>  
</select>
<input type ="Submit" name ="formSubmit" value ="Submit">
</form>    
<?

私が達成しようとしているのは、データベースに保存されているオプションがデフォルトで選択されるようにすることです。コードに何が欠けていますか?

4

3 に答える 3

0

このコード行には少なくともスペースが 1 つ欠けており、if試した方法で文字列にステートメントを入れることはできません。次のようなことを試してください:

echo "<option value = \"$i\"" . (($rating == $i + 1) ? " selected" : "") . "> $values[$i] </option>"; 
于 2012-12-07T22:27:04.860 に答える
0

これを試してみてください、それはあなたが望むものになるでしょう

  <form name ="rating" method ="POST" action ="" > <?php

echo "<input type = 'hidden' name = 'accountID' value = '" . $row['accountID'] . "' >";

?>
    <select name="rating">

        <? $values = array('','Very Bad','Bad','Average','Above Average');

        for ($i =0; $i < count($values); $i = $i + 1){ ?>
            <option value = "$i"  <?php if ($rating == $i + 1) {echo " selected='selected'" ;} ?> > $values[$i] </option>
          <?php 
        }

        ?>

        </select>
        <input type ="Submit" name ="formSubmit" value ="Submit" />
        </form>

    <?

編集:

はい、この変数$ratingは定義されていません。そのように定義してみてください

  if (isset $POST['rating']) {$rating = $POST['rating'];}else {$rating = 0 ;}

この前formにphpタグ内のどこかに置いてください

于 2012-12-07T22:44:10.410 に答える
0

次の比較が正しいことを確認してください。

if ($rating == $i + 1)

あなたが与えたコードから $rating 変数が何であるかを知ることはできません。オプションに値を与えるので、私は期待しています:

value='$i'

比較は次のようになります。

if ($rating == $i)
于 2012-12-07T22:30:26.367 に答える