Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.04.2012, 14:52
Новичок на форуме
Отправить личное сообщение для plazmagod Посмотреть профиль Найти все сообщения от plazmagod
 
Регистрация: 09.02.2012
Сообщений: 7

Как декодировать русские GET-параметры?
Стоит задача выставить селекторы и значения полей, соответственно принятых GET-параметров. С цифровыми значениями порядок. А вот со строковыми значениями беда - при установке селектора в значение "Да", в GET-параметре оказывается "%C4%E0" и селектор не выставляется. Функция decodeURI и decodeURIComponent к window.location выдают ошибку: "malformed URI sequence".

string = new String(window.location);
  
   get_s = string.split("?")[1].split("&");
   
   var get_vars = [];
   var get_vals = [];
   
   for(i = 0; i < get_s.length; i++){
   
		get_vars[i] = get_s[i].split("=")[0];
		get_vals[i] = get_s[i].split("=")[1];
		
		if(get_vars[i].match(/^to_param_|^from_param_/)){
		
			$('input[name = '+ get_vars[i] +']').val(get_vals[i]);
		}
		
		if(get_vars[i].match(/^select_param_/)){
		
			$('select[name = ' + get_vars[i] + ']').val(get_vals[i]);
		}
	
   }
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2012, 15:02
Интересующийся
Отправить личное сообщение для Nitro_Generate Посмотреть профиль Найти все сообщения от Nitro_Generate
 
Регистрация: 14.04.2011
Сообщений: 20

Если код в php стоит то можешь urlencode обработать, а полученный url в js передать
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2012, 15:25
Новичок на форуме
Отправить личное сообщение для plazmagod Посмотреть профиль Найти все сообщения от plazmagod
 
Регистрация: 09.02.2012
Сообщений: 7

Сообщение от Nitro_Generate Посмотреть сообщение
Если код в php стоит то можешь urlencode обработать, а полученный url в js передать
Не, очень желательно обойтись чисто javascript. JQuery в принципе тоже стоит, но там функций не нашел для обработки.

Последний раз редактировалось plazmagod, 04.04.2012 в 15:38.
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2012, 17:22
Новичок на форуме
Отправить личное сообщение для plazmagod Посмотреть профиль Найти все сообщения от plazmagod
 
Регистрация: 09.02.2012
Сообщений: 7

Решено следующим кодом:

var trans=[];
 var snart=[];
 
 for(var i=0x410;i<=0x44F;i++){
 
	 trans[i]=i-0x350;
	 snart[i-0x350] = i;
 }
 
 trans[0x401]= 0xA8;
 trans[0x451]= 0xB8;
 snart[0xA8] = 0x401;
 snart[0xB8] = 0x451;
 
 window.urlencode = function(str){
	 var ret=[];
	 
	 for(var i=0;i<str.length;i++){
	 
		 var n=str.charCodeAt(i);
		 if(typeof trans[n]!='undefined')
		 n = trans[n];
		 if (n <= 0xFF)
		 ret.push(n);
	 }

	 return window.escape(String.fromCharCode.apply(null,ret));
 }
 
 window.urldecode = function(str){
 
	 var ret=[];
	 str = unescape(str);
	 for(var i=0;i<str.length;i++){
	 
		 var n=str.charCodeAt(i);
		 
		 if(typeof snart[n]!='undefined') n = snart[n];
		 
		 ret.push(n);
	 }

 return String.fromCharCode.apply(null,ret);
 }
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 17:12
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как вызвать функцию если менять надо не все параметры? britanik Общие вопросы Javascript 3 07.03.2009 23:13