18.03.2015, 00:52
|
Новичок на форуме
|
|
Регистрация: 17.03.2015
Сообщений: 9
|
|
javascript _GET помогите решить вопрос, а то долго мучаюсь
ну кароч постараюсь подробно описать суть вопроса.
на сайте есть выбор региона (города страны).
Это реализовано через select >> option
В Option данные подтягиваются из БД
при выборе конкретного города, его ID передается в GET .
Передается следующим js кодом:
onchange = "document.getElementById('element').submit();"
после выбора получается:
http://infor.com.ua/index.php?region_select=2
Жирным-подчеркнутым выделил то что передалось при выборе региона.
И все прекрасно работает.
НО...
Если пользователь переходит на другую страницу сайта, где уже есть в GET другие элементы пример( http://infor.com.ua/objav_parent.php..._select=2&id=3)
ТО на этой странице, при выборе региона? сбивается id, и остается только переданые данные. получается вот как:
http://infor.com.ua/objav_parent.php?region_select=30
а хотелось бы получить просто изменение region_select региона
http://infor.com.ua/objav_parent.php...select=30&id=3
Можете помочь кто нибудь, ну или хотя бы в какую сторону двигаться, а то я уже аш запарился мудрить с этим функционалом!
|
|
18.03.2015, 04:52
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Если get-параметры в url подставляется клиентский сценарий, то делать он должен как раз не так, как выделено жирным, а добавлять их с учетом существующих или нет других параметров. Вот и двигайтесь в то место, где эта операция производится.
|
|
18.03.2015, 06:48
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Добавь форме атрибут method="post".
Сообщение от laimas
|
Если get-параметры в url подставляется клиентский сценарий
|
Ты разве не в курсе про html-формы? Браузер сам собирает get-параметры при формировании запроса. Проблема в том что браузер отпрасывает старые get-паметры из action формы и формирует новые. Поэтому тут нужен post-запрос. Да и не нужно светить ненужными параметрами в адресной строке.
__________________
В личку только с интересными предложениями
|
|
18.03.2015, 07:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
В курсе конечно. Я ошибку допустил, думая о сервере, написал о клиенте. А я так и понял, что так и есть - post с get в action, но теряют на сервере пришедшие параметры, и надо было бы http_build_query().
Но наверно да, не так понял.
|
|
18.03.2015, 10:02
|
Новичок на форуме
|
|
Регистрация: 17.03.2015
Сообщений: 9
|
|
ну post мне тут ваще не подойдет, с гетом как то попроще будет. Я думаю может в идеале в сессию записать данные выбранные по региону!?, если да, подскажите плз, как это сделать. ... причем, опять же, в сессию добавить данные не затирая существующие в ней другие данные. есть какие-то мысли?
|
|
18.03.2015, 10:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Я вот зациклился на ID и id, отбросив в сторону то, что первое, это имелось ввиду ID значения, и совсем не то представил.
Можно и в сессию записать, но это ведь тоже означает изменение логики работы в скрипте, так почему не заменить обработку GET на POST, который ничем не сложнее первого. Если же ничего не переделывать, то передавайте этот "теряющийся" id между страницами в скрытом поле формы.
|
|
18.03.2015, 12:56
|
Новичок на форуме
|
|
Регистрация: 17.03.2015
Сообщений: 9
|
|
так не пойдет. пользователь не будет постоянно, на каждой странице использовать эту форму, поэтому по Вашей логике, постом можно отправить в переменную. но как мне зафиксировать выбранное значение на все время пользования(пока из формы опять незахочет поменять). ибо пользователь может ходить по сайту используя разные ссылки, а мне, ваще не вариант, прописывать в каждую ссылку данные из переменной полученных от первого POSTa.
конечно, как мне кажется, идеальным вариантом был бы вариант с get, а еще лучше передать в сессию.
подскажите как в сессию передать?
|
|
18.03.2015, 13:05
|
Новичок на форуме
|
|
Регистрация: 17.03.2015
Сообщений: 9
|
|
+ забыл уточнить, при каждом же переходе, данные формы устанавливаются на region_select=0 . ну типа поле по умолчанию "выбрать регион:" . и соответственно в переменной выбраный region_select перезаписывается на 0 ...
|
|
18.03.2015, 17:22
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Это не моя логика, моя логика дала сбой сразу, потому как ваш пост почему-то здесь, а причем тут JS, если надо что-то запомнить?
У вас же проблема была в том, что теряется, не подходит POST, значит скрытым полем в GET. А запомнить на сервере, это значит проверить:
if($_SESSION['keyname']) {
//что-то делаем, если есть в сессии ключ
//или есть и не равен 0, хотя смысла запомнить 0 нет
}
JS для этого совсем не нужен.
|
|
18.03.2015, 23:24
|
Новичок на форуме
|
|
Регистрация: 17.03.2015
Сообщений: 9
|
|
JS использую для того чтобы при выборе региона, срабатывал submit без физического нажатия на кнопку. если это можно как то решить посредством PHP, напишите пжлста как это сделать... и действительно вопрос решен будет. по скольку яваскриптом отправляется только select_region(id-его)
|
|
|
|