Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Простой вопрос про перезагрузку страницы (https://javascript.ru/forum/misc/44694-prostojj-vopros-pro-perezagruzku-stranicy.html)

Boomerml 29.01.2014 17:37

Простой вопрос про перезагрузку страницы
 
К примеру мы перешли по ссылке www.sute.kz/?filter=djk
После каких то манипуляций с помощью javascript или jquery нужно поместить ещё переменных GET. Естественно страница должна перезагрузится.

http://www.sute.kz/?filter=djk&perem...emenaya2=23232

Как реализовать? или дайте ссылку чайнику... Глупый вопрос понимаю...

UDP. Нужно перенаправить на ту же страницу с добавленными get переменными.

ksa 29.01.2014 23:43

Цитата:

Сообщение от Boomerml
Нужно перенаправить на ту же страницу с добавленными get переменными.

Прочитай текущий УРЛ...
http://javascript.ru/window-location
Добавь нужные значения...
Измени УРЛ (перезагрузи страницу)...

Boomerml 30.01.2014 11:32

ksa
Как обычно спасаешь!
Спасибо! Пошёл изучать...

Boomerml 30.01.2014 12:41

Может кому пригодиться...

Почитал про window-location, понял что куда. Подумал зачем велосипед? Чётче сформулировал вопрос, отправить в гугл, нашёл stackoverflow.com

Забрал это
function insertParam(key, value) {
	key = escape(key); value = escape(value);

	var kvp = document.location.search.substr(1).split('&');
	if (kvp == '')
	{ document.location.search = '?' + key + '=' + value; }
	else
	{

		var i = kvp.length; var x; while (i--) {
			x = kvp[i].split('=');

				if (x[0] == key) {
					x[1] = value;
					kvp[i] = x.join('=');
					break;
				}
			}

			if (i < 0) { kvp[kvp.length] = [key, value].join('='); }

			//this will reload the page, it's likely better to store this until finished
			document.location.search = kvp.join('&');
	}
}


смысл таков

insertParam('max','10');
	insertParam('min','5');
// Если не будет переменных добавить '/?max=10&min=5' - относительно страницы.
// Если будут переменные до этого просто будет добавлять через '&'


Всем спасибо! до свидание :)

ruslan_mart 30.01.2014 13:24

window.location.addGet = function(params) {
	var arr = [], i;
	for(i in params) arr.push(i + '=' + params[i]);
	arr = arr.join('&');
	if(arr) this.search = this.search.charAt(1) ? '&' + arr : arr;
}
      
window.location.addGet({'test': true});


Написал простой метод. :)

Boomerml 30.01.2014 15:45

Цитата:

Сообщение от Ruslan_xDD (Сообщение 294905)
window.location.addGet = function(params) {
	var arr = [], i;
	for(i in params) arr.push(i + '=' + params[i]);
	arr = arr.join('&');
	if(arr) this.search = this.search.charAt(1) ? '&' + arr : arr;
}
      
window.location.addGet({'test': true});


Написал простой метод. :)

Спасибо! отлично!
Но есть но но но поправите пожалуйста... :)

window.location.addGet({'lm_pricemin':13150,'lm_pricemax':20950});


Первый вовод пустые параметры - правильно

Код:

/?lm_pricemin=13150&lm_pricemax=20950
тык дальше появляется & в начале чего не должно быть

Код:

/?&lm_pricemin=13150&lm_pricemax=20950
и если уже были переменные он их удаляет. :( а нужно чтобы просто дополнил типа

Код:

/?clear_cache=Y&lm_pricemin=13150&lm_pricemax=20950
Спасибо!

ruslan_mart 31.01.2014 06:29

window.location.addGet = function(params) {
	var arr = [], i;
	for(i in params) arr.push(i + '=' + params[i]);
	arr = arr.join('&');
	if(arr) this.search += this.search.charAt(2) ? '&' + arr : arr;
}
      
window.location.addGet({'test': true});


Нет времени тестить, попробуйте так.


Часовой пояс GMT +3, время: 13:23.