Respostas:
Isso depende do que o servidor de destino aceita. Não existe um padrão definitivo para isso. Veja também ao Wikipedia: Query string :
Embora não haja um padrão definitivo, a maioria das estruturas da web permite que vários valores sejam associados a um único campo (por exemplo
field1=value1&field1=value2&field2=value3
). [4] [5]
Geralmente, quando o servidor de destino usa uma linguagem de programação de tipo forte como Java ( Servlet ), você pode simplesmente enviá-los como vários parâmetros com o mesmo nome. A API geralmente oferece um método dedicado para obter vários valores de parâmetro como uma matriz.
foo=value1&foo=value2&foo=value3
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3]
O request.getParameter("foo")
também funcionará nisso, mas retornará apenas o primeiro valor.
String foo = request.getParameter("foo"); // value1
E, quando o servidor de destino usa uma linguagem de tipo fraco , como PHP ou RoR, você precisa sufocar o nome do parâmetro com colchetes []
para acionar a linguagem para retornar uma matriz de valores em vez de um único valor.
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
Caso você ainda use foo=value1&foo=value2&foo=value3
, ele retornará apenas o primeiro valor.
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
Observe que, ao enviar foo[]=value1&foo[]=value2&foo[]=value3
para um Servlet Java, você ainda pode obtê-los, mas precisará usar o nome exato do parâmetro incluindo as chaves.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
Sei que esta postagem é muito antiga, mas tenho que responder porque embora a resposta do BalusC esteja marcada como correta, ela não está totalmente correta.
Você deve escrever a consulta adicionando "[]" ao foo assim:
foo[]=val1&foo[]=val2&foo[]=val3
<input name="user[name]" /> <input name="user[email]" />
dentro de um<form>
contêiner sabe exatamente como enviar por padrão em todos os navegadores. as entradas se tornarão `usuário [nome] = SOMETEXT & usuário [email] =SOME@TEXT.com --- é o aplicativo host que é necessário para lidar com a decodificação de volta em uma matriz