[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: url, ссылки
Страницы: 1, 2
user_name
Добрый день,
нидавно начал разбираться в патерне mvc, пересмотрел кучу исходников с разной реализацией но с одной сутью. В итоге написал что то свое. А теперь к вопросу)
Так у меня передается контроллер и параметры - localhost/shop/size/m/color/white экшен контроллера 'shop' вызывается автоматически. Все параметры которые в url передаются в _GET из экшена контроллера. На одну страницу один контроллер. Так вот, например мне нужно отфильтровать товары по размеру, по цвету, и т.д. Это все происходит на одной странице,просто при выборе в url должен добавляться очередной параметр. Как мне правильно формировать ссылку и подставлять ее в шаблон, чтобы все параметры добавлялись в url и не конфликтовали?. Чтобы не получалось вот такого localhost/shop/size/m/shop/color/white или localhost/size/s/size/s при повторном нажатии. как то нужно проверять и удалять ненужные параметры если они есть. Хочется узнать как это правильно делается а не писать что то свое. Первый раз столкнулся. Может пример есть какой.спасибо.
Игорь_Vasinsky
чтоб параметры не конфликтовали - их имена должны быть уникальны.
также при смене параметров - нужно либо по новой формировать урл - либо парсить его и работать с регулярками.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
user_name
Ну например я выбрал размер получил такой site/shop/size/s если еще выбрать и цвет то нужно как то знать что в данном url у меня есть параметр 'размер' и добавить к нему параметр 'цвет' в итоге получить такой site/shop/size/s/color/red если у меня уже есть параметр 'размер' то его нужно удалить и добавить новый. также проверять контроллер 'shop' в url его ведь может и не быть на главной странице. вобщем придется гавнокодить. если есть примеры скиньте пожалуйста.
Игорь_Vasinsky
может эти параметры хранить либо в куках либо в сессии? зачем провацировать хулиганов играться с урлом? и данные ещё каждый раз обрабатывать..

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
user_name
Игорь_Vasinsky
именно эти параметры возможно да. но тогда будет не возможно скопировать ссылку с отфильтрованными товарами. что в принципе и не особо нужно.
Игорь_Vasinsky
ты можешь формировать ключ для группы параметров и отображать его в урле, но тогда нужно будет хранить группу фильтров в БД

т.е. фильтр в сессии

$_SESSION[filter] = array('color'=>'red', 'size'=>12);

можно сформировать ключ для этой группы

$key_filter = sha1(serialize($_SESSION['filter']));

и передать его в урл

http://..../?...&p=$key_filter

а в БД сохранить строку

key | params (сериализованный $_SESSION[filter])

с другой стороны это нутарно

и урлы с явным фильтром для сео тоже пригодятся


короч я же написал простой вариант - либо каждый раз формировать по новой урл, либо работать с ним с preg_replace()


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Razzwan
В готовых решениях, я думаю, каждый раз новый URL генерируется. Это и интуитивно понятно. Ничто не мешает нам заново все данные на сервер в форме отправить, ты же фильтры не убираешь, правильно?

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Игорь_Vasinsky
Razzwan
Щас всё модно. рулит аякс. урл один - все фильтры работают реалтайм.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Razzwan
Цитата (Игорь_Vasinsky @ 17.01.2015 - 00:20)
Razzwan
Щас всё модно. рулит аякс. урл один - все фильтры работают реалтайм.

Я погуглил и в основном нашел готовые решения, где каждый раз форма отправляется заново. Из чего сделал вывод, что так рациональнее. А есть примеры реалтайм именно в этой конкретной задаче?

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Guest
Если читать мой первый пост то от туда понятно что я новичок. и я нихрена не понял как генерировать новый url. пожалуйста напишите подробнее или скиньте реальные примеры)
Игорь_Vasinsky
Razzwan
учителя не гуглят.. учителя знают
Guest
опа MVC .. как понять ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
user_name
Игорь_Vasinsky
В mvc я разобрался. и нисмишно.
Игорь_Vasinsky
user_name
сомнительно.
щарить в патернах т не понимать как организовать логику проектируемого приложения - смишно ток то

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Razzwan
Цитата (Игорь_Vasinsky @ 17.01.2015 - 02:44)
учителя не гуглят.. учителя знают

Я, надеюсь, ты никому не расскажешь что я гуглю? user posted image

Цитата (Guest @ 17.01.2015 - 02:23)
и я нихрена не понял как генерировать новый url

Дык ты готовым решением пользуешься, которое, наверное, не предполагает такой возможности. В вакууме это даже проще. Жмакнул по кнопке, собрал все данные с формы последовательно, отослал запрос (т.е. url).

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
user_name
Игорь_Vasinsky
Значит думаю что разобрался. И всеравно не смешно.
Razzwan
Каким еще готовым решением. Каикие кнопки какие формы. у меня просто ссылки при переходе по ним обновление страницы с новым добавленным или замененным параметром.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.