1

私はかなり単純な問題を抱えています。値が1から10の選択ドロップダウンがあります。これは編集画面であるため、ユーザーは選択する必要のある値をすでに選択しています。私は彼らにそれを変える機会を与えています。したがって、私がする必要があるのは、オプション値に選択された単語を挿入することだけです。この単純なタスクを実行するために、私は当時はエレガントではないものをたくさんやっています。これを行うためのベストプラクティスまたは簡単な方法はありますか?その場合、これらすべてを実行して10個の新しい変数を作成する必要はないようです。htmlをphpロジックから分離しておく理由から、オプション値を順番に書きたくないことに注意してください。htmlは別の領域にあり、適切な場所で選択された変数を設定する必要があります。

if ($row['points']==1){
$select1 = "selected"}
if ($row['points']==2){
$select2 = "selected"}
//values 3 through 9
if ($row['points']==2){
$select2 = "selected"}


echo '<select name="points">';
echo '<option value = 1'. $select1.'>1</option>';
echo '<option value=2'. $select1.'>2</option>';
//values 3 through 9
echo '<option value=10'.$select10.'>10</option>';
echo '</select>';
4

4 に答える 4

3
for ($x = 1; $x <= 10; $x++) {
   echo "<option value=$x" . ($row['points'] == $x ? ' selected' : '')
      . ">$x</option>';
}
于 2012-05-09T14:51:37.480 に答える
2

forループはこれに適しています。選択したケースをテストするためのインラインifelseステートメントを使用します。

echo '<select name="points">';
for ($i=1; $i<=10; $i++) {
   echo "<option value='{$i}'".($row['points']==$i ? ' select="selected"':'').">{$i}</option>";   

}
echo '</select>';
于 2012-05-09T14:52:08.093 に答える
1

私はjqueryとの選択された値を示す隠しフィールドでそれを行います<select>

html:

<input type=hidden name=points value=1>
<select name="points">
  <option value=1>1</option>
  <option value=2>2</option>
</select>

js:

$('input[type=hidden]').each(function(){
            var e = $(this);
            var name = e.attr("name");
            var val = e.val();
            if(name!="")
            {
                e.parent().find('select[name='+name+']').val(val);              
            }       
        });

于 2012-05-09T15:05:58.123 に答える
1

単一の選択可能なリストを使用しているため(複数選択は許可されていません)、つまり一度に1つしか選択できません。http://fi.php.net/str_replaceを探してください。

echo str_replace("value='".$selected_value."'", "value='".$selected_value."' selected", "<option value='1'>1</option><option value='2'>2</option> ....");
于 2012-05-09T14:52:46.293 に答える