Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2015, 00:52
Новичок на форуме
Отправить личное сообщение для sidor84 Посмотреть профиль Найти все сообщения от sidor84
 
Регистрация: 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


Можете помочь кто нибудь, ну или хотя бы в какую сторону двигаться, а то я уже аш запарился мудрить с этим функционалом!
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2015, 04:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если get-параметры в url подставляется клиентский сценарий, то делать он должен как раз не так, как выделено жирным, а добавлять их с учетом существующих или нет других параметров. Вот и двигайтесь в то место, где эта операция производится.
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2015, 06:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Добавь форме атрибут method="post".
Сообщение от laimas
Если get-параметры в url подставляется клиентский сценарий
Ты разве не в курсе про html-формы? Браузер сам собирает get-параметры при формировании запроса. Проблема в том что браузер отпрасывает старые get-паметры из action формы и формирует новые. Поэтому тут нужен post-запрос. Да и не нужно светить ненужными параметрами в адресной строке.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2015, 07:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В курсе конечно. Я ошибку допустил, думая о сервере, написал о клиенте. А я так и понял, что так и есть - post с get в action, но теряют на сервере пришедшие параметры, и надо было бы http_build_query().

Но наверно да, не так понял.
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2015, 10:02
Новичок на форуме
Отправить личное сообщение для sidor84 Посмотреть профиль Найти все сообщения от sidor84
 
Регистрация: 17.03.2015
Сообщений: 9

ну post мне тут ваще не подойдет, с гетом как то попроще будет. Я думаю может в идеале в сессию записать данные выбранные по региону!?, если да, подскажите плз, как это сделать. ... причем, опять же, в сессию добавить данные не затирая существующие в ней другие данные. есть какие-то мысли?
Ответить с цитированием
  #6 (permalink)  
Старый 18.03.2015, 10:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я вот зациклился на ID и id, отбросив в сторону то, что первое, это имелось ввиду ID значения, и совсем не то представил.

Можно и в сессию записать, но это ведь тоже означает изменение логики работы в скрипте, так почему не заменить обработку GET на POST, который ничем не сложнее первого. Если же ничего не переделывать, то передавайте этот "теряющийся" id между страницами в скрытом поле формы.
Ответить с цитированием
  #7 (permalink)  
Старый 18.03.2015, 12:56
Новичок на форуме
Отправить личное сообщение для sidor84 Посмотреть профиль Найти все сообщения от sidor84
 
Регистрация: 17.03.2015
Сообщений: 9

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

конечно, как мне кажется, идеальным вариантом был бы вариант с get, а еще лучше передать в сессию.

подскажите как в сессию передать?
Ответить с цитированием
  #8 (permalink)  
Старый 18.03.2015, 13:05
Новичок на форуме
Отправить личное сообщение для sidor84 Посмотреть профиль Найти все сообщения от sidor84
 
Регистрация: 17.03.2015
Сообщений: 9

+ забыл уточнить, при каждом же переходе, данные формы устанавливаются на region_select=0 . ну типа поле по умолчанию "выбрать регион:" . и соответственно в переменной выбраный region_select перезаписывается на 0 ...
Ответить с цитированием
  #9 (permalink)  
Старый 18.03.2015, 17:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Это не моя логика, моя логика дала сбой сразу, потому как ваш пост почему-то здесь, а причем тут JS, если надо что-то запомнить?
У вас же проблема была в том, что теряется, не подходит POST, значит скрытым полем в GET. А запомнить на сервере, это значит проверить:

if($_SESSION['keyname']) {
    //что-то делаем, если есть в сессии ключ
    //или есть и не равен 0, хотя смысла запомнить 0 нет
}


JS для этого совсем не нужен.
Ответить с цитированием
  #10 (permalink)  
Старый 18.03.2015, 23:24
Новичок на форуме
Отправить личное сообщение для sidor84 Посмотреть профиль Найти все сообщения от sidor84
 
Регистрация: 17.03.2015
Сообщений: 9

JS использую для того чтобы при выборе региона, срабатывал submit без физического нажатия на кнопку. если это можно как то решить посредством PHP, напишите пжлста как это сделать... и действительно вопрос решен будет. по скольку яваскриптом отправляется только select_region(id-его)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку на jQuery. Готов заплатить. shevgeny Javascript под браузер 1 05.05.2014 12:07
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
Вопрос по Javascript rawas Общие вопросы Javascript 4 08.01.2010 11:54
Есть вопрос по Javascript JsLoveR Opera, Safari и др. 1 23.12.2009 01:04
Вопрос для знатоков JavaScript prodis Общие вопросы Javascript 14 09.10.2008 00:31