Помогите с GET запросом.

Статус
В этой теме нельзя размещать новые ответы.

Serega75

Постоялец
Регистрация
17 Дек 2008
Сообщения
83
Реакции
36
На сайте делаю сортировку, через список отправляю GET запросы вида:
?sort_by=created&sort_order=DESC
?sort_by=created&sort_order=ASC

но они ломаются и приходят в таком виде:
?sort_by=created%26sort_order%3DDESC
?sort_by=created%26sort_order%3DASC

И нифига не работает, помогите победить это.
 
Приложи код, который работает с этими запросами.
 
Там обычный селект:
HTML:
<form method="get" class="list_order"
                                      action="/category/ginuwracreph">
                                <select name="sort_by" onchange='this.form.submit()' style="width:150px" class="styled">
                                    <option value="title&sort_order=ASC">по заголовку</option>
                                    <option value="created&sort_order=DESC" selected="selected">по дате (новые)</option>
                                    <option value="created&sort_order=ASC">по дате (старые)</option>
                                    <option value="changed&sort_order=ASC">по дате изменения</option>
                                </select>
                            </form>

Хм, странно.. Куда приходят, как смотрите? Про Для просмотра ссылки Войди или Зарегистрируйсяв курсе?
В адресную строку смотрю.
 
Не html код

А код движка - php, asp или pl скрипт.
 
Serega75, когда говорят
Приложи код, который работает с этими запросами.
обычно имеют в виду серверный код, который обрабатывает поступивший запрос.
В адресную строку смотрю.
Это серьезно :) Покажи всё-таки код, который разбирает запрос а затем делает выборку из БД(можно без подробностей по части БД)
 
движек друпал, модулю views делает выборку

вот так работает:
HTML:
<form method="get" class="list_order"
      action="/category/ginuwracreph">
<select name="sort_by" onchange='this.form.submit()' style="width:150px" class="styled">
    <option value="title">по заголовку</option>
    <option value="created" selected="selected">по дате (новые)</option>
    <option value="created">по дате (старые)</option>
    <option value="changed">по дате изменения</option>
</select>
</form>

но сортирует в одну сторону.
 
ТС имеет ввиду что его браузер превращает форму гет запроса в галимотью, проблема не сервер сайд.
вот решение проблемы:
HTML:
<html>
<head>
 
<script type="text/javascript">
    function OnDropDownChange(dropDown) {
        var selectedValue = dropDown.options[dropDown.selectedIndex].value;
     
        if(selectedValue == 1)
        {
        document.sorting.sort_by.value = "title";
        document.sorting.sort_order.value = 'ASC';
        }
        else if(selectedValue == 2)
        {
        document.sorting.sort_by.value = 'created';
        document.sorting.sort_order.value = 'DESC';
        }
                else if(selectedValue == 3)
        {
        document.sorting.sort_by.value = 'created';
        document.sorting.sort_order.value = 'ASC';
        }
                else if(selectedValue == 4)
        {
        document.sorting.sort_by.value = 'created';
        document.sorting.sort_order.value = 'ASC';
        }
        document.sorting.submit();
    }
 
</script>
</head>
<body>
 
<form method="get" name="sorting" class="list_order" action="/category/ginuwracreph">
                                <select onChange="OnDropDownChange(this);" style="width:150px" class="styled">
                                <option>-- sort --</option>
                                    <option value="1">по заголовку</option>
                                    <option value="2">по дате (новые)</option>
                                    <option value="3">по дате (старые)</option>
                                    <option value="4">по дате изменения</option>
                                </select>
<input type="hidden" name="sort_by" value="" />
<input type="hidden" name="sort_order" value="" />
</form>
                         
                            <body>                        </html>

функцию OnDropDownChange перенесите в свой .js файл, а так же модифицируйте её и <option> под свой лад


п.с. проблема в том, что нельзя в value пихать value&var=value&.. как было у вас
 
Если ссылка ломается в браузере, попробуйте вместо
Код:
?sort_by=created&sort_order=DESC
?sort_by=created&sort_order=ASC

Использовать:
Код:
?sort_by=created&amp;sort_order=DESC
?sort_by=created&amp;sort_order=ASC
 
дествительно, почему бы не добавить дополнительный контрол для сортировки? он находится вовнутри формы, принимает нужные значение, поститься вместе с ней, всё будет пучком
sort_order

ещё небось друпал проверит sort_by=created&amp;sort_order=ASC и отстрелит всё что после криейтед, так что лучше использовать два контрола с точными параметрами, хотя может и сработать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху