0

ユーザーが送信ボタンを押した後、ドロップダウンの選択を保持します.1〜4日目で作業しているだけです.

<?PHP
    $day = array( );
    $day[0] = "1";
    $day[1] = "2";
    $day[2] = "3";
    $day[3] = "4";
    $days=$day;   
?>

<select name="day"> 
     <option value="day">Day</option>
     <?PHP
        for ($days = 0; $days < 4; $days++) {           
            print"<option value='$day[$days]'>$day[$days]</option>";
        }
    ?>
</select>
4

3 に答える 3

0

手始めに、そのコードはいくつかの深刻な再考が必要です。

最初に配列を作成してから、理由もなく別の変数に追加します。

次に、値はインデックスから1つだけ離れているため、その場で簡単に計算できます。

そして最後に、同じ配列内をループして、インデックスのみを使用します(配列は必要ありません)。

したがって、私の口のある場所にコードを配置すると、次のようになります。

<select name="day"> 
    <option value="day">Day</option>
    <?php
        for ($day = 1; $day <= 4; $day++) {
            print"<option value='$day'>$day</option>";
        }
    ?>
</select>

とはいえ、どのアイテムを選択する必要があるかについては言及していません。それがと呼ばれる変数であると仮定すると$the_day、ここにさらにいくつかのコードがあります:

<?php

$the_day = 4;

?><select name="day"> 
    <option value="day">Day</option>
    <?php
        for ($day = 1; $day <= 4; $day++) {
            $it_is = $day == $the_day ? 'selected="selected"' : '';
            print"<option value='$day' $it_is>$day</option>";
        }
    ?>
</select>
于 2012-08-08T13:18:22.817 に答える
0

ステートメントで選択したキーワードを使用できます

print"<option value='$day[$days]' selected='selected'>$day[$days]</option>";
于 2012-08-08T13:19:41.050 に答える
0

スーパーグローバルから渡された値をプルして、$_REQUEST反復ごとにチェックできます。事前に選択する<option>タグには、selected属性が含まれている必要があります。また、ループ内のカウンターを単純にインクリメントできる場合は、連続する整数の配列を作成する必要はありません。このようなものがあなたのために働くはずです:

<select name="day"> 
<option value="day">Day</option>
<?php
    $day = null;
    if (array_key_exists('day', $_REQUEST) {
        $day = $_REQUEST['day'];
    }
    for ($i = 1; $i <= 4; $i++) {
       echo '<option value="' . $i . '"';
       if ($i == $day) {
           echo ' selected="selected"';
       }
       echo '>' . $i . "</option>\n";
    }
?>
</select>
于 2012-08-08T13:19:56.047 に答える