2012-05-10 6 views
0

Hy тамФорма переключатель с неправильным значением

У меня есть некоторые selecboxes на моем сайте, как этот:

<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> 

теперь я получил проблема после отправки формы ... если «в 2011 году» выбирается после отправки, я получаю только «2011», значение, но я хочу текст. после обновления поле выбора меняет текст на «в 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> 

так может здесь некоторые мне помочь? Надеюсь, я сказал, что понимаю. спасибо за помощь!

EDIT

ОК, я думаю, что я нашел эту проблему в коде моего коллеги ... но я столкнуться с другой проблемой, в то же, что он хотел решить. Это фактический код:

<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 вы не можете получить текстовую часть поля select или? Что он мог бы еще решить?

+0

что вы имеете в виду обновить выберите коробки !! –

+0

выглядит как выбранный, становится новым вариантом, это правильно? – gunnx

ответ

1

Если вы хотите, чтобы получить «в 2011 году», вы должны установить значение параметра для

<option value="at 2011">at 2011</option> 
+0

Это то, что он имеет в виду? –

+0

Я не совсем уверен, что вы спросили ... Как я понял, нынешняя ситуация в том, что человек получает значение, скажем, 2011 года, но вместо этого он хочет «в 2011 году» – Darvex

+0

На самом деле я не могу понять, что он подразумевает под обновлением в блоках выбора?! –

0

Насколько я понял, вы хотите сохранить value атрибут, но получить текст внутри тега option.

$("#regdate option[value='2011']").text() вернется "в 2011 году"

http://jsfiddle.net/BtNNT/5/