Как автоматически выбрать выбранный пункт в списке после отправки формы? - PullRequest
1 голос
/ 11 июня 2010

У меня есть этот код:

  <form id="form2" name="form2" method="post" action="">
      <table dir="ltr" width="554" border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td width="269" class="da"><div align="center"><span id="spryselect1">
            <select onchange="form2.submit()" name="mpage" id="mpage">
              <option selected="selected" value="no">-----------</option>
              <option value="medmo">Medmo.com</option>
              <option value="paris">Paris.com</option>
              <option value="imo">IMO.com</option>
            </select>
          </span></div></td>
          <td width="214" class="t_b">Select Website</td>
        </tr>
      </table>

    </form>

Когда пользователь выбирает значение, форма автоматически отправляется, я хочу, чтобы элемент, выбранный пользователем, был выбран после отправки формы.

Поскольку я сталкиваюсь с этой проблемой:

Пользователь выбирает первый элемент (Medmo.com) -> отправка формы -> выбранный элемент будет "-------"

Я хочу, чтобы это произошло:

Пользователь выбирает первый элемент (Medmo.com) -> отправка формы -> выбранный элемент будет "Medmo.com"

Как я могу это сделатьчто?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 11 июня 2010

одна возможность будет такой:

<option value="medmo"<? if($mpage=='medmo') echo ' selected="selected"'; ?>>Medmo.com</option>
<option value="paris"<? if($mpage=='paris') echo ' selected="selected"'; ?>>Paris.com</option>
<option value="imo"<? if($mpage=='imo') echo ' selected="selected"'; ?>>IMO.com</option>
1 голос
/ 11 июня 2010

Другой способ, более элегантный:

используйте идентификаторы (числа), а затем просто сделайте цикл, чтобы проверить, соответствует ли номер записи текущему номеру, Вы можете сделать это с массивом:

        // 0 ,1, 2
$ids = ('Medmo','Paris','Imo');
$selected = $_POST['mpage'];
for($i=0;$i<count($ids);$i++)
{
      if($ids[$i] == $selected)
      { 
          $selected = 'selected="selected"';
      }
      print '<option value="'.$i.'" '.$selected.'>'.$ids[$i].'.com</option>';

}
0 голосов
/ 11 июня 2010

вы не можете сделать это ни в html-файле (ни в javascript).

когда отправляется форма, загружается новая страница, и вы не оказываете никакого влияния на то, что там происходит.

, поэтому вам либо понадобится какая-нибудь серверная среда (php, rails,java, что угодно) или вы можете работать с cookie и javascript (сохранить выбранное значение в cookie и инициализировать новую страницу из этого значения cookie)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...