PHP: сортировка по данным ajax - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть страница search.php , где пользовательский поиск и результаты поиска отображаются на search_records.php .

Вкл. search_records.php Любой пользователь может искать новый ИЛИ сортировать результаты, используя раскрывающийся список (см. Изображение ниже)

Search Record page

текущий процесс: Когда пользователь выбирает значение из выпадающего списка, мы отправляем ajax-запрос на сервер и извлекаем те же данные с дополнительным предложением ORDER BY , а затем отображаем данные.

изменение в процессе: мы можем сделать то же самое, используя некоторую функцию массива PHP, когда пользователь выбирает любое значение из выпадающего списка, мы добавляем ?sort=whatever в текущий URL, а затем в соответствии с $_GET['sort'], мы перестроим массив результатов поиска.

Но я не смог добиться успеха, пока попробовал ниже 2 способа.

1) С HTML / PHP

<select id="sortMyData">
        <option value="asc"><a href="searchrecords.php?sort=asc">Low to high price</option>
        <option value="asc"><a href="searchrecords.php?sort=desc">High ti low price</option>
        <option value="asc"><a href="searchrecords.php?sort=age">Younger to older</option>
</select>

но я был удивлен, узнав, что <a> не работает внутри <option> или я здесь что-то не так делаю?

2) С jQuery

   <select id="sortMyData">
      <option value="asc">Price: Low to High</option>
      <option value="desc">Price: High to Low </option>
      <option value="age">Younger to older</option>
   </select>

 $('#sortMyData').change(function(e){
    var locAppend = $(this).find('option:selected').val(),
    alert("Redirecting to: " + locSnip + locAppend);
    window.location ='searchrecords.php?sort='+locAppend ;
});

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2011
<form method="POST">
<select id="sortMyData" name="sortMyData">
    <option value="asc">Low to high price</option>
    <option value="desc">High ti low price</option>
    <option value="age">Younger to older</option>
</select>
</form>

<?php
// form receiver 
    if (isset($_POST['sortMyData']))
    {
        switch($_POST['sortMyData'])
        {
            case 'asc': header("Location : http://path/to/searchrecords.php?sort=asc");
                        break;
            case 'desc': header("Location : http://path/to/searchrecords.php?sort=desc");
                        break;
            case 'age': header("Location : http://path/to/searchrecords.php?sort=age");
                        break;

        }
    }
 ?>
0 голосов
/ 26 ноября 2011

Если вы уже используете JQuery Checkout, плагин datatables . Он обрабатывает все сортировки и подкачки, которые вы когда-либо хотели.

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