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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтр по производителю для магазина на php, Возник вопрос при создании фильтра 
:(
    Опции темы
denisshaymardanov
Дата 21.9.2010, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я создаю интернет-магазин. Разрабатываю фильтр товаров по производителю. Делаю это с помощью выпадающего списка, в котором выводятся наименования производителей. В списке выбирается производитель, затем нажимается submit и выводится страница, соответствующая заданным параметрам.

Реализую это так (фрагмент кода из tovary.php):

Код

echo "<form name=\"proizvoditelpoisk\" method=\"get\">"; 
            
            // Создаём форму
            
            echo "<input type=\"hidden\" name=\"kod_categ\" value=\"".$_GET[kod_categ]."\">";
            
            // В этом скрытом поле хранится Код_категории
            
            echo "<input type=\"hidden\" name=\"categoriya\" value=\"".$_GET[categoriya]."\">";
            
            // В этом скрытом поле хранится Категория товара
            
            echo "Фильтр по производителю: <select name=\"vyborproizvoditelya\"> \n";
            
            /* Создаём выпадающий список, в котором выбирается Код_производителя */
            
            // Устанавливаем выбранным в выпадающем списке производителя, который был передан в параметрах товара
            
            if ($_GET[vyborproizvoditelya]=='*') 
            
                {
            
                    echo "<option name=\"proizvoditel*\" value=\"*\" selected> Все </option>"; 
            
                }
                
            else
            
            {
            
                    echo "<option name=\"proizvoditel*\" value=\"*\"> Все </option>"; 
            
            }
            
            // Если Код_производителя равен *,  то по умолчанию устанавливаем значение "Все"
            
            $query="SELECT p.kod_proizvoditelya, p.proizvoditel FROM sklad.proizvoditeli p"; 
            
            /*Запрос, в котором выбираются Код_производителя, Производитель */
            
            $result=mysql_query($query,$db); 
            
            // Посылаем запрос к БД

            $num=mysql_num_rows($result); 
            
            // Находим количество строк в результате запроса

            for($i=0;$i<$num;$i++) 
            
            // Запускаем цикл от 0 до i
            
                {    
            
                    $kod_proizvoditelya=mysql_result($result, $i, "p.kod_proizvoditelya"); 
                    
                    // Из i-ой строчки запроса выделяем Код_произодителя
            
                    $proizvoditel=mysql_result($result, $i, "p.proizvoditel"); 
                    
                    // Из i-ой строчки запроса выделяем Производителя
            
                    if ($_GET[vyborproizvoditelya]==($i+1)) 
                    
                        {
                    
                            echo "<option name=\"proizvoditel".$kod_proizvoditelya."\" value=\"".$kod_proizvoditelya."\" selected>".$proizvoditel."</option>";
                            
                        }
                        
                    else 
                    
                        {
                    
                            echo "<option name=\"proizvoditel".$kod_proizvoditelya."\" value=\"".$kod_proizvoditelya."\">".$proizvoditel."</option>";
                            
                        }
                            
                        // Если Код_производителя равен $i,  то делаем производителем по умолчанию производителя под номером $i
                        
             }
                
            echo "</select>";
            
            echo "<input type=\"submit\" value=\"Применить\">"; // Отправить параметры товара в tovary.php методом GET
            
            echo "</form>";


Всё работает. Но вот возник вопрос. 

Если произвести следующий порядок действий: 

1) Выбираем производителя (Любого, кроме "Все") 2) Применяем 3) Выводится список + Значение по умолчанию устанавливается в того производителя, которого выбрали 4) Нажимаем Назад в браузере 

То происходит следующее: 

Производитель по умолчанию в выпадающем списке останется тем же, что и был выбран. Мне хотелось бы, чтобы выпадающий список по умолчанию снова имел значение "Все" (мы же возвращаемся на страницу, на которой по умолчанию стояло значение "Все"). Если посмотреть код страницы, на которую мы перешли, нажав кнопку Назад - то увидим: <option name="proizvoditel*" value="*" selected> Все </option>, после обновления страницы значение по умолчанию устанавливается во "Все". Я думаю, это связано с тем, что php выполняется на стороне сервера. Может, подскажите, как можно решить этот вопрос? Заранее искренне благодарен. 

Это сообщение отредактировал(а) MoLeX - 21.9.2010, 11:47
PM MAIL   Вверх
enoff
Дата 21.9.2010, 20:52 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



denisshaymardanov, сами написали, что php выполняется на сервере, смотрите исходный-html, там selected у "Все".
Чем тут может помочь php? И почему вопрос направлен в php-раздел?
А то, что знаение остается прежним, это браузер запоминает предыдущий выбор.
PM MAIL ICQ Skype GTalk   Вверх
denisshaymardanov
Дата 22.9.2010, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Посоветуйте тогда, в какой раздел лучше написать по этому вопросу? Заранее спасибо) 
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.1079 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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