2010-06-17 22 views

Respuesta

98

Eso depende de lo que acepte el servidor de destino. No hay un estándar definitivo para esto. Ver también a.o. Wikipedia: Query string:

Aunque no existe una norma definitiva, la mayoría de los marcos de web permiten múltiples valores a estar asociados con un solo campo (por ejemplo field1=value1&field1=value2&field2=value3). [4][5]

En general, cuando el servidor de destino utiliza una fuerte mecanografiado lenguaje de programación como Java (Servlet), a continuación, puedes enviarlas como múltiples parámetros con el mismo nombre. La API generalmente ofrece un método dedicado para obtener múltiples valores de parámetros como una matriz.

foo=value1&foo=value2&foo=value3 
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3] 

El request.getParameter("foo") también trabajará en ella, sino que va a devolver sólo el primer valor.

String foo = request.getParameter("foo"); // value1 

Y, cuando el servidor de destino utiliza una débil lenguaje mecanografiada como PHP o RoR, entonces usted necesita para el sufijo del nombre del parámetro con los apoyos [] con el fin de desencadenar el idioma para devolver una matriz de valores en lugar de un solo valor

foo[]=value1&foo[]=value2&foo[]=value3 
$foo = $_GET["foo"]; // [value1, value2, value3] 
echo is_array($foo); // true 

En caso de que todavía utiliza foo=value1&foo=value2&foo=value3, entonces va a devolver sólo el primer valor.

$foo = $_GET["foo"]; // value1 
echo is_array($foo); // false 

tenga en cuenta que cuando se envía foo[]=value1&foo[]=value2&foo[]=value3 a un servlet de Java, a continuación, puede seguir obteniendo ellos, pero que había necesidad de utilizar el nombre del parámetro exacto incluidas las llaves.

String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3] 
147

Sé que este post es muy viejo, pero tengo que responder porque a pesar de la respuesta de BalusC está marcada como correcta, no es del todo correcta.

Tienes que escribir la consulta añadiendo "[]" a foo como esto:

foo[]=val1&foo[]=val2&foo[]=val3 
+2

alegra que respondió a este antiguo puesto! Definitivamente ayudó. –

+11

Esta respuesta solo es correcta para usuarios de lenguajes de tipo débil como PHP porque el '[]' en realidad se está utilizando como una solución interna para poder obtener parámetros de múltiples valores. Mi respuesta ha sido actualizada para aclarar eso más. Entonces su declaración "no es completamente correcta" no es válida. La pregunta original era sobre Java, no sobre PHP. – BalusC

Cuestiones relacionadas