こんにちは
私のサイトには、次のようないくつかの選択ボックスがあります。
<div class="registrationdate">
<select class="filter registrationdate" name="rdat" id="regdate">
<option value="">---</option>
<option value="2012">at 2012</option>
<option value="2011">at 2011</option>
<option value="2010">at 2010</option>
</select>
</div>
フォームの送信後に問題が発生しました...送信後に「at 2011」が選択された場合、値は「2011」だけになりますが、テキストが必要です。選択ボックスを更新した後、テキストを「at 2011」に変更します
ソースで問題を確認できますが、解決方法がわかりません。フォームを送信した後、同じページに着陸すると、上記の選択ボックスのソースは次のように変更されます。
<div class="registrationdate">
<select class="filter registrationdate" name="rdat" id="regdate">
<option value="2012">2012</option>
<option value="">---</option>
<option value="2012">at 2012</option>
<option value="2011">at 2011</option>
<option value="2010">at 2010</option>
</select>
</div>
ここで私を助けることができますか?私が理解できるように表現したことを願っています。助けてくれてありがとう!
編集
OK、同僚のコードで問題を見つけたと思います...しかし、彼が解決したかったのと同じ別の問題に遭遇しました。これは実際のコードです:
<form action='<?php echo $_SERVER['PHP_SELF']; ?>' name='filterform' method='get' class="filterform">
<div class='registrationdate'>
<strong><?php echo $GLOBALS['Lng']['filter_Erstzulassung']; ?>:</strong>
<select id="regdate" name="rdat" class="filter registrationdate">
<?php if (isset($_GET['rdat'])&&$_GET['rdat']!='') echo '<option value="'.$_GET['rdat'].'">'.$_GET['rdat'].'</option>'; ?>
<option value="">---</option>
<?php for ($i = date(Y); $i >= (date(Y)-7); $i-- ) {
echo '<option value="'.$i.'">ab '.$i.'</option>';
}?>
</select>
</div>
<input type="submit" value="<?php echo $GLOBALS['Lng']['apply']; ?>" name="submit" id="submit" class="field">
</form>
問題は、フォームを送信した後、入力したオプションを再び表示したいということです。通常、フォームを送信すると、デフォルト値が取得されます。彼はこれをphp部分「isset then echo」で上書きしようとしました。AFAIK PHPでは、選択フィールドのテキスト部分を取得できませんか? これを解決するために彼は他に何ができますか?