Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Прошу помочь с алгоритмом
Форумы портала PHP.SU » » Вопросы новичков » Прошу помочь с алгоритмом

Страниц (2): [1] 2 »
 

1. psevdo - 12 Августа, 2013 - 08:06:12 - перейти к сообщению
Всем привет. Не могу справиться с задачей, поэтому прошу помочь разобраться с алгоритмом. Задача такая. Есть некий продукт с некими характеристиками. Для уточнения возьмем "Книга". Выделим такие параметры:
1) год издания
2) кол-во страниц
3) название

Есть три страницы.
1. Главная. Здесь имеется форма для поиска книг по параметрам.
2. Каталог. Переход с главной страницы по параметрам поиска. На этой странице также имеется форма с теми же параметрами.
3. Товар. Переход со страницы каталог.

Мне нужно организовать хлебные крошки. Т.е. перешли мы на вторую страницу с определенными параметрами (они передаются методом POST). Далее идем на страницу товара. А вот с нее нужно снова перейти на вторую страницу, но должны учитываться предыдущие параметры.

Задача вроде примитивная. Но у меня то с одной стороны проблема, то с другой. Подскажите пожалуйста, как вы решаете такую задачу.
2. avtor.fox - 12 Августа, 2013 - 08:46:29 - перейти к сообщению
Странно, что Вы используете для поиска метод POST. Что такое POST, GET и в чём их различие (в использовании, например) — знаете? Так вот, меняйте на GET, а кнопку "назад" в хлебных крошках уже можно будет делать без проблем.

CODE (text):
скопировать код в буфер обмена
  1. http://site.com/catalog?page=2&search=?

И передавайте, что душе угодно.
3. sheff2000 - 12 Августа, 2013 - 08:46:50 - перейти к сообщению
psevdo пишет:
Мне нужно организовать хлебные крошки. Т.е. перешли мы на вторую страницу с определенными параметрами (они передаются методом POST). Далее идем на страницу товара. А вот с нее нужно снова перейти на вторую страницу, но должны учитываться предыдущие параметры.


Так как ты передаешь параметры методом POST, то возникает одна небольшая трудность - у тебя есть один адрес страницы каталога (например http://site.com/catalog/), в не зависимости введены параметра поиска или нет.
Поэтому, по умолчанию, ты не можешь вернутся на страницу каталога с определенными параметрами. Вводил ты параметры или нет, адрес страницы каталога все равно будет http://site[dot]com/catalog/

Чтобы быстро просто построить хлебные крошки, нужно иметь уникальный адрес страницы для каждого параметра поиска или их комбинаций. Тогда ты в любой момент можешь обратится в нужной страницы с нужным набором книг.
Например, адрес страницы каталога без параметров поиска - http://site[dot]com/catalog/
адрес страницы с заданным параметром "год издания = 2000" - http://site[dot]com/catalog/?yy=2000

надеюсь понятна моя мысль ... - передавать параметры поиска не POST, а GET запросом, ну или использовать оба варианта.

тогда построение хлебных крошек будет примерно таким:
1. Тебе нужно где то сохранять параметры поиска - в куках, сессии .. чтобы использовать их на странице "Товар".
2. На странице "Товар" анализируй наличие или отсутствие сохраненных параметров поиска
3. Если параметров нет (сразу попали на страницу товара), то "крошки" строй как то так:
Главная - каталог (без фильтра) - название текущего товара
4. Если параметры поиска есть, то :
Главная - каталог + параметры поиска методом GET (?yy=2000 - год издания 2000г) - название открытого товара
4. psevdo - 12 Августа, 2013 - 09:04:03 - перейти к сообщению
Дело в том, что у меня два параметра передаются массивом.
5. _Dark_ - 12 Августа, 2013 - 09:08:02 - перейти к сообщению
psevdo пишет:
Дело в том, что у меня два параметра передаются массивом.

Ну так сделайте так, чтобы все нормально передавалось через GET.
В чём проблема то.
6. psevdo - 12 Августа, 2013 - 09:12:39 - перейти к сообщению
_Dark_ пишет:
psevdo пишет:
Дело в том, что у меня два параметра передаются массивом.

Ну так сделайте так, чтобы все нормально передавалось через GET.
В чём проблема то.


Ну вот допустим у меня есть такие параметры:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <input type="text" name="param[]" value="1" />
  3. <input type="text" name="param[]" value="2" />
  4. <input type="text" name="param[]" value="3" />
  5. <input type="text" name="param[]" value="4" />
  6.  


Как мне это передать через GET? Подскажите.
7. _Dark_ - 12 Августа, 2013 - 09:15:10 - перейти к сообщению
Ну у формы method поставьте GET и массив отлично передастся.
8. psevdo - 12 Августа, 2013 - 09:19:48 - перейти к сообщению
_Dark_ пишет:
Ну у формы method поставьте GET и массив отлично передастся.


И правда. У меня как то проблемы были. И с тех пор с считаю, что гетом нельзя передавать массивы)

Адреса правда получаются некрасивые.
9. _Dark_ - 12 Августа, 2013 - 09:22:46 - перейти к сообщению
psevdo пишет:

Адреса правда получаются некрасивые.

Для поиска это стандартная ситуация.
Только зачем вам массивы?
10. avtor.fox - 12 Августа, 2013 - 09:22:53 - перейти к сообщению
psevdo пишет:
Адреса правда получаются некрасивые.

ЧПУ Вам в руки.
11. psevdo - 12 Августа, 2013 - 09:33:28 - перейти к сообщению
_Dark_ пишет:
psevdo пишет:

Адреса правда получаются некрасивые.

Для поиска это стандартная ситуация.
Только зачем вам массивы?


А как бы вы сделали? Допустим есть параметр жанр. Значения: рекламный, обзорный и пр.
12. _Dark_ - 12 Августа, 2013 - 09:40:02 - перейти к сообщению
psevdo пишет:
_Dark_ пишет:
psevdo пишет:

Адреса правда получаются некрасивые.

Для поиска это стандартная ситуация.
Только зачем вам массивы?


А как бы вы сделали? Допустим есть параметр жанр. Значения: рекламный, обзорный и пр.

Ну, два поля, один выпадающий список, другое - название. Без массива.

Но а вообще, по другому вроде никак и не сделаешь.
Да и для поиска красивые адреса не особо нужны, я думаю.
13. avtor.fox - 12 Августа, 2013 - 09:40:56 - перейти к сообщению
Чел, харэ меня игнорить. Я обижусь Закатив глазки

CODE (html):
скопировать код в буфер обмена
  1. <form method='GET'>
  2.         <select name='genre'>
  3.                 <option value='promo'>Рекламный</option>
  4.                 <option value='childish'>Детский</option>
  5.         </select>
  6.         <input type='submit'>
  7. </form>
14. psevdo - 12 Августа, 2013 - 09:47:39 - перейти к сообщению
avtor.fox пишет:
Чел, харэ меня игнорить. Я обижусь Закатив глазки

CODE (html):
скопировать код в буфер обмена
  1. <form method='GET'>
  2.         <select name='genre'>
  3.                 <option value='promo'>Рекламный</option>
  4.                 <option value='childish'>Детский</option>
  5.         </select>
  6.         <input type='submit'>
  7. </form>


А понял) Нет, мне это не покатит. Тут тонкости дизайна)
15. avtor.fox - 12 Августа, 2013 - 09:48:33 - перейти к сообщению
psevdo пишет:
А понял) Нет, мне это не покатит. Тут тонкости дизайна)

нихера ты не понял и я обиделся.

 

Powered by ExBB FM 1.0 RC1