<?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
Если вы используете 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"
Она также может сериализовать некоторые сложные массивы.
Попробуйте плагин запросов 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"