user_name
16.01.2015 - 20:17
Добрый день,
нидавно начал разбираться в патерне 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
16.01.2015 - 22:32
чтоб параметры не конфликтовали - их имена должны быть уникальны.
также при смене параметров - нужно либо по новой формировать урл - либо парсить его и работать с регулярками.
_____________
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
16.01.2015 - 22:45
Ну например я выбрал размер получил такой site/shop/size/s если еще выбрать и цвет то нужно как то знать что в данном url у меня есть параметр 'размер' и добавить к нему параметр 'цвет' в итоге получить такой site/shop/size/s/color/red если у меня уже есть параметр 'размер' то его нужно удалить и добавить новый. также проверять контроллер 'shop' в url его ведь может и не быть на главной странице. вобщем придется гавнокодить. если есть примеры скиньте пожалуйста.
Игорь_Vasinsky
16.01.2015 - 22:48
может эти параметры хранить либо в куках либо в сессии? зачем провацировать хулиганов играться с урлом? и данные ещё каждый раз обрабатывать..
_____________
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
16.01.2015 - 22:55
Игорь_Vasinsky
именно эти параметры возможно да. но тогда будет не возможно скопировать ссылку с отфильтрованными товарами. что в принципе и не особо нужно.
Игорь_Vasinsky
16.01.2015 - 23:04
ты можешь формировать ключ для группы параметров и отображать его в урле, но тогда нужно будет хранить группу фильтров в БД
т.е. фильтр в сессии
$_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
17.01.2015 - 00:01
В готовых решениях, я думаю, каждый раз новый URL генерируется. Это и интуитивно понятно. Ничто не мешает нам заново все данные на сервер в форме отправить, ты же фильтры не убираешь, правильно?
_____________
Youtube канал WebDeveloper->Run()Сайт для душиGitter
Игорь_Vasinsky
17.01.2015 - 00:20
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
17.01.2015 - 02:23
Цитата (Игорь_Vasinsky @ 17.01.2015 - 00:20) |
Razzwan Щас всё модно. рулит аякс. урл один - все фильтры работают реалтайм. |
Я погуглил и в основном нашел готовые решения, где каждый раз форма отправляется заново. Из чего сделал вывод, что так рациональнее. А есть примеры реалтайм именно в этой конкретной задаче?
_____________
Youtube канал WebDeveloper->Run()Сайт для душиGitter
Если читать мой первый пост то от туда понятно что я новичок. и я нихрена не понял как генерировать новый url. пожалуйста напишите подробнее или скиньте реальные примеры)
Игорь_Vasinsky
17.01.2015 - 02:50
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
17.01.2015 - 02:55
Игорь_Vasinsky
В mvc я разобрался. и нисмишно.
Игорь_Vasinsky
17.01.2015 - 03:01
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
17.01.2015 - 03:27
Цитата (Игорь_Vasinsky @ 17.01.2015 - 02:44) |
учителя не гуглят.. учителя знают |
Я, надеюсь, ты никому не расскажешь что я гуглю?
Цитата (Guest @ 17.01.2015 - 02:23) |
и я нихрена не понял как генерировать новый url |
Дык ты готовым решением пользуешься, которое, наверное, не предполагает такой возможности. В вакууме это даже проще. Жмакнул по кнопке, собрал все данные с формы последовательно, отослал запрос (т.е. url).
_____________
Youtube канал WebDeveloper->Run()Сайт для душиGitter
user_name
17.01.2015 - 03:40
Игорь_Vasinsky
Значит думаю что разобрался. И всеравно не смешно.
Razzwan
Каким еще готовым решением. Каикие кнопки какие формы. у меня просто ссылки при переходе по ним обновление страницы с новым добавленным или замененным параметром.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.