Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача GET и POST 
V
    Опции темы
f999t1
Дата 10.2.2013, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 11.4.2006

Репутация: нет
Всего: нет



есть выпадающий список с размерами. Выбираю позицию(т.е. размер) и submit-ом передаю переменные, 
что бы после обновления значение в списке не сбрасывалось.
Так же есть сортировка по цене. Представляет собой ссылку, в которой передается параметр asc или desc для select-а
методом GET. 
При этом значение в выпадающем списке сбрасывается.
Как это исправить?

Код

//здесь формирую список размеров 
    $size=mysql_query("SELECT S.`ID_SIZE`
                                ,concat(S.`size_l`,'x',S.`size_w`,' см') 'size'
                            FROM `SIZE` S
                            WHERE S.`ID_CATEGORY`=".(int)$c.
                            " ORDER BY S.`size_l`"
                            ,$db);
    
    
    
    //здесь эти значения загоняю в выпадающий список. Который находится в форме для передачи выбранного значения
 
    if(mysql_num_rows($size))
    {
     $select="<form name='choise_size' method='post' action='/item/category/item_1.php?c=".(int)$c.'&sort='.$sort."'>
     
     <select name='choise'>                                                               
     <option  value='0'>Все размеры</option>";
    
      
     
      while($row_size=mysql_fetch_assoc($size))
      {
       
            // условие чтобы после обновления показывался выбранный элемент  
        if ( isset($_POST['choise'])&& $_POST['choise']==$row_size['ID_SIZE'] ) {$selected='selected';} else {$selected='';}
      
      
        $select.="<option ".$selected." value=".$row_size['ID_SIZE'].">".$row_size['size']."</option>"; 
      }
        $select.="<input type='submit' value='OK'></input> 
        </form>
        </select>";
        
        echo($select);
    
      
    }
    else 
    {echo('');}    
    
    
    
    


Следующий код делает сортировку. Точнее переменной sort задаю значение 
desc или asc, которые отправляю в select для order by 

Вот здесь и не знаю как отправить значения $_POST['choise']

Код

<a href="/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=desc' ?>">Убыв. </a> 
    <a href="/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=asc' ?>">Возр. </a>



В этом коде идет выборка позиций. Здесь как раз нужны значения из выпадающего списка для фильтрации данных и значение для сортировки

Код

// условие для where likz фильтрации
 if ( isset($_POST['choise'])&& $_POST['choise']<>0 ) {$where=' and S.`ID_SIZE`='.$_POST['choise'];} else {$where='';}
  
  $goods=mysql_query("SELECT G.`ID_GOODS` 
                         ,N.`name` 
                        
             ,G.`price`
                        
                         FROM `GOODS` G 
                         LEFT JOIN `NAME` N on (N.`ID_NAME`=G.`ID_NAME`) 
             LEFT JOIN `SIZE` S on     (S.`ID_SIZE`=G.`ID_SIZE`)
                         
                         WHERE G.ID_CATEGORY=".(int)$c.$where.
                         "  ORDER BY G.`price` ".$sort
                        
                         ,$db);  

 
PM MAIL   Вверх
Arantir
Дата 10.2.2013, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Ух, какой венигретик...

А почему вы передаете порядок сортировки по ссылке, если вы посылаете POST-запрос? Между прочим, для служебных целей было придумано <input type="hidden" value="чего-то">, которое не отображается на странице.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
f999t1
Дата 10.2.2013, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 11.4.2006

Репутация: нет
Всего: нет



на самом деле не принципиально по ссылке или нет, просто ничего другого не придумал.

надо чтобы это могло выполняться по отдельности.

Т.е. надо, например, сделать выборку по размерам. 
В выпадающем списке выбираем размер. Выводится только один выбранный размер,
при этом пока  ничего не сортируется.
Далее делаем сортировку, по возрастанию или убыванию, при этом надо, чтобы выбранный размер остался,
а не сбрасывался.
Не могу придумать как это сделать. 

PM MAIL   Вверх
Arantir
Дата 10.2.2013, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Есть маленькая хитрость:
Код

    <input type="submit" name="asc" value="Убыв. ">
    <input type="submit" name="desc" value="Возр. ">
на какую кнопочку нажимаете, такая переменная отправится, при этом только выбранная (остальные submit не отправятся). 
Так что потом можно легко проверить выбранную кнопку через isset(). Тут проверка идет не на значение, а на саму переменную (ее существование).

Используйте такие sumbit'ы вместо ссылок, сможете передать сразу всю форму со всеми выбранными данными.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
f999t1
Дата 10.2.2013, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 11.4.2006

Репутация: нет
Всего: нет



не получается.

выбираю размер, отфильтровывается по размеру.
http://s1.ipicture.ru/uploads/20130210/bslTXnaI.png

далее делаю два submit, жму на один из них, размер опять слетает

http://s1.ipicture.ru/uploads/20130210/46yWoOsN.png


Это сообщение отредактировал(а) f999t1 - 10.2.2013, 20:39
PM MAIL   Вверх
Arantir
Дата 10.2.2013, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Цитата(f999t1 @  10.2.2013,  18:54 Найти цитируемый пост)
        $select.="<input type='submit' value='OK'></input> 
        </form>
        </select>";

У input нету закрывающего тега. А еще вы закрываете select после того, как закрываете форму. select за пределами формы допустим, но в данном случае теги перекрещиваются, что недопустимо.


Цитата(f999t1 @  10.2.2013,  19:38 Найти цитируемый пост)
не получается.

выбираю размер, отфильтровывается по размеру.
далее делаю два submit, жму на один из них, размер опять слетает
Данные должны отправляться одинаково для любого из sumbit'ов. Если размер сохраняется после "ОК", то должен сохраняться и после остальных.
Вы же их всех внутри одной формы поместили?


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
f999t1
Дата 12.2.2013, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 11.4.2006

Репутация: нет
Всего: нет



да, заработала.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.