Сохранить значение selectbox после отправки - PullRequest
0 голосов
/ 28 октября 2010

На веб-сайте, который я сейчас создаю, я разместил поле выбора, где пользователь может сортировать список элементов, отображаемых на странице. Когда они выбирают один, страница отправляется, и значение selectbox возвращается к первому значению по умолчанию. Теперь я хочу, чтобы поле выбора сохраняло значение после отправки.

Я работаю в XSLT, поэтому я не могу использовать PHP. Есть ли функция Javascript для этого? или плагин / функция jQuery?

Спасибо

моя форма:

<form name="sort-form" action="{$root}/resorts/" method="get">
    <select name="filter" onChange="document.getElementById('sort-form').submit();">
        <option value="">Sort By...</option>
        <option value="recommended">Recommended</option>
        <option value="location">Location</option>
        <option value="prices-from">Low budget</option>
        <option value="prices-till">High budget</option>
    </select>
</form>

1 Ответ

1 голос
/ 28 октября 2010

У вас есть два варианта:

  1. Отправить форму AJAX.
  2. Сохранить состояние в файлах cookie.

Я рекомендую использовать AJAX, поскольку он делает интерфейсы более интерактивными и экономит интернет-трафик.Для отправки формы вы можете использовать метод jQuery .post():

<script type="text/javascript"> 
   $(document).ready(function(){ 
    $("#sort-form").submit(function(){ 
        $.post("/your/url.php", 
            $("#sort-form").serialize(), 
            function(data){ 
                // optional callback 
           } 
       ); 
    }); 
  }); 

Если это не вариант (например, страницу необходимо перезагрузить в любом случае), вам нужно установить Cookiesа затем, после перезагрузки, проверьте их еще раз.Пример (с использованием функций из здесь ):

// on submit 
setCookie("select_value", document.getElementById('yourSelectId').value);
....
// on load
var sortSelect = document.getElementById('yourSelectId');
var val = getCookie("select_value");
for(index = 0; index < sortSelect.length; index++) {
if(sortSelect[index].value == val)
  sortSelect.selectedIndex = index;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...