@speculant

Как конвертировать три массива в url и обратно?

Здравствуйте, имеется три массива в них хранится информация в таком виде
el_1: "option_1_3", el_2: "option_1_2" //первый массив
el_1: "option_2_2", el_2: "option_2_3" //второй
el_1: "option_3_1", el_2: "option_3_2" // третий

Мне нужно сделать ссылку, чтобы в ней передавались значения этих массивов, и можно было разобрать ссылку, что бы отобразить те же элементы
Нашел функцию http_build_query.js с ее помощью получаю строку вида
var query = build_query(arr1, 5) +'%' + build_query(arr2, 5) +'%' + build_query(arr3, 5);
//результат
query = el_1=option_1_3&el_2=option_1_2%el_1=option_2_2&el_2=option_2_3%el_1=option_3_1&el_2=option_3_2

Как ее обратно разбить на три массива? или может как то другим способом можно решить
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
BRAGA96
@BRAGA96
В тегах вопроса есть jQuery, если вы её используете, то зачем вам http_build_query.js если есть $.param(), чтобы перевести обратно можете создать свой небольшой метод или гуглите unparam, deparam
;(function($) {
    $.extend({
        unparam: function(param) {
            if (param[0] === '?') param = param.slice(1);
            var re = {};
            for (var i = 0, arr = param.split('&'), kv; kv = arr[i]; i++) {
                kv = kv.split('=');
                re[kv[0]] = kv[1];
            }
            return re;
        }
    });
})(jQuery);


Пример:
var param = $.param({
	el_1: 'option_1_3',
	el_2: 'option_1_2'
});
//> "el_1=option_1_3&el_2=option_1_2"

var decode = $.unparam(param);
//> {el_1: "option_1_3", el_2: "option_1_2"}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Leo5878
@Leo5878
Улыбчивай, люблю учить и учиться
В твоем вопросе, я бы рекомендовал использовать объекты.
Если я правильно понял, то тебе, надо достать значения каждого ключа!?
"и можно было разобрать ссылку, что бы отобразить те же элементы" - В смысле разобрать ссылку?
В виде объекта, это будет выглядеть так:
{
el_1 : "option_1_3", 
el_2 : "option_1_2",
el_3 : "option_2_2", 
el_4 : "option_2_3", 
el_5 : "option_3_1",
el_6 : "option_3_2"
}


Почитай это, я думаю найдешь для себя что-то, что поможет тебе в решении проблемы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы