Как реализовать что-то как http_build_query PHP и реверс в JavaScript?

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data);
/* Output:
      foo=bar&baz=boom&cow=milk&php=hypertext+processor
*/

Как сделать, подобная вещь в JavaScript, скажем, получает строку запроса от массива и преобразовывает массив в строку запроса?

ОБНОВЛЕНИЕ

плагин jQuery не работает:

var fromVar = $.query.load('?cow=milk')
fromVar.set('first', 'value'); 
fromVar.toString()

Это производит ?cow=milk в то время как я хочу, чтобы это было ?cow=milk&first=value

7
задан wamp 3 June 2010 в 03:36
поделиться

2 ответа

Если вы используете jQuery, то можете использовать функцию jQuery.param():

var obj = { "foo":"bar", "baz":"boom", "php":"hypertext processor" };
var str = jQuery.param(obj);
alert(str); // should be "foo=bar&baz=boom&php=hypertext+processor"

Она также может сериализовать некоторые сложные массивы.

28
ответ дан 6 December 2019 в 06:02
поделиться

Попробуйте плагин запросов jQuery . Это довольно интуитивно понятно. Вы можете использовать методы доступа get и set для чтения и изменения строки запроса:

var cow = $.query.get('cow');
$.query.set('cow', 'goat');

Вы можете создать новый объект запроса из существующей строки:

var fromVar = $.query.load('?cow=milk')
var cow = fromVar.get('cow'); // milk

Вы также можете создать пустой объект:

var newQ = $.query.empty();
newQ = newQ.set('first', 'value'); // "?first=value"
-1
ответ дан 6 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

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