Добавить переменную в строку json или поменять местами по щелчку?

#jquery #query-string #jsonp

#jquery #запрос-строка #jsonp

Вопрос:

Хорошо, я использую что-то вроде этого

 $.getJSON("http://myurl.com/search-ext.jsonamp;type=aaaaaaamp;callback=?", 
  

работает нормально, но теперь мне нужно добавить другую переменную типа, подобную этой:

 $.getJSON("http://myurl.com/search-ext.jsonamp;type=aaaaaaamp;type=bbbbbamp;callback=?",
  

Да, у них одинаковое имя …. так могу ли я вставить другой тип или есть способ поменять строку с помощью onclick?

Ответ №1:

Добавить [] к ключу в вашем URL:

 $.getJSON("http://myurl.com/search-ext.jsonamp;type[]=aaaaaaamp;type[]=bbbbbbamp;callback=?",
  

Кроме того, я не знаю, сделали ли вы это специально или нет, но, по крайней мере, кажется, что вам нужен ? after .json:

 $.getJSON("http://myurl.com/search-ext.json?type[]=aaaaaaamp;type[]=bbbbbbamp;callback=?",
  

Тогда, например, в PHP, у вас будет массив на сервере:

 $_GET['type'] ~ array('aaaaaa','bbbbbb')
  

Редактировать

После дополнительных комментариев, я полагаю, это то, что вы ищете:

http://plugins .jquery.com/project/query-object

 var newerQuery = $.query.SET('type', 'bbbbb');
var newURL = "http://myurl.com/search-ext.json?"   newerQuery;
$.getJSON(newURL);
  

Пример:

http://jfcoder.com/test/gettypes.php?type=aaaaaaamp;callback=MyCallback

ПРАВКА 2

 <a href="href://www.somewhere.com/?type=aaaaaaamp;amp;other=yesamp;amp;another=yesamp;amp;yeti=neverseen" 
   onClick="return replaceType(this,'bbbbbb')">Link</a>

function replaceType(el, value) {
    sub = el.href.substring(0,el.href.indexOf('?'));
    split = el.href.substring(el.href.indexOf('?') 1).split("amp;");
    for (var i = 0; i < split.length; i  ) {
        if (split[i].indexOf('type=') !== 0) continue;
        split[i] = encodeURI("type=" value);
    }
    el.href = sub   "?"   split.join('amp;');
    alert(el.href);
    return false;
}
  

http://jsfiddle.net/Phjsv/1/

Комментарии:

1. Вероятно, просто пропустил это. Что даст добавление [] =bbbbb? Я сбит с толку — я пытаюсь отобразить разные результаты в зависимости от нажатой ссылки.

2. Один должен быть со вторым типом, а другой без него.

3. Нет php, это должен быть только javascript или jquery

4. Похоже, вы хотели найти способ передавать несколько type файлов на сервер с помощью GET string ( amp;type=aaaaaaamp;type=bbbbb ).

5. или… Вы пытаетесь ЗАМЕНИТЬ type в строке GET?