html - POST parámetros múltiples
twig use (7)
¿Estoy equivocado o la mayoría de las respuestas están fuera del punto?
Para responder con precisión a su pregunta, sí, puede enviar una lista separada por comas a un parámetro POST. Para ser sincero, hice una prueba rápida con un script PHP, pero no veo por qué Java se comportaría de manera diferente. Un punto con las solicitudes POST es precisamente que tiene muchas menos restricciones en la sintaxis (no es necesario que escape = & o tal).
Entonces, si explica más en detalle lo que "no funciona", quizás podamos ayudarlo más.
Estoy cambiando un GET a un POST. Actualmente tengo .jsp? Id = a, b, c, d. Al cambiar esto a una publicación, todavía estoy sentado el parámetro id a, b, c, d. Esto no funciona para mí ¿Puedo enviar una lista separada por comas a un parámetro de publicación?
Establezca que su parámetro entregue valores múltiples nombrándolo como una matriz. En lugar de llamar a la entrada "id", llámala "id []"
<form method="post">
<select multiple name="id[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="send">
</form>
Al procesar, recuerde extraer la matriz de valores enviados por el parámetro nombrado.
Fionn tiene razón. Utilizar
url?param=value1¶m=value2¶m=value3
para establecer múltiples valores en un solo parámetro. Para leer los valores en su Servlet / JSP puede usar
String[] values = request.getParameterValues("param");
GET y POST tienen dos propósitos diferentes. De la entrada HTTP de Wikipedia:
OBTENER
Solicita una representación del recurso especificado. Tenga en cuenta que GET no debe usarse para operaciones que causan efectos secundarios, como su uso para realizar acciones en aplicaciones web. Una razón para esto es que GET puede ser usado arbitrariamente por robots o rastreadores, que no deberían tener que considerar los efectos secundarios que una solicitud debería causar. Vea los métodos seguros a continuación.
ENVIAR
Envía datos para ser procesados (por ejemplo, desde un formulario HTML) al recurso identificado. Los datos están incluidos en el cuerpo de la solicitud. Esto puede dar como resultado la creación de un nuevo recurso o las actualizaciones de los recursos existentes o ambos.
Básicamente, debe usar GET para, bueno, obtener información y POST para cualquier acción que altere el estado del servidor, como agregar nuevos registros.
Puede hacerlo como un formulario de entrada seleccionado:
url? param = valor1 y param = valor2 y param = valor3
Dependiendo de su idioma y biblioteca, debería poder obtener una matriz de valores para param.
Por ejemplo, con asp.net mvc hago esto para obtener una matriz de cadenas:
string[] values = Request.Form.GetValues("param");
Puede pasar más de un parámetro usando
xmlhttp
.send("files=" + files.value + "&tagcount="
+ tagcount.value);
Aquí los archivos y el conteo de etiquetas son la identificación de los parámetros que se pasarán. Esto estaba funcionando para mi Ajax Script. En casos normales, puede agregar los parámetros con & . Entonces los parámetros pueden verse como
"parameter1=" + parameter1.value + "¶meter2=" + parameter2.value
en la solicitud posterior, un mínimo de 1 parámetro debería estar allí en la lista de parámetros. Si está agregando un parámetro para solicitarlo, no funcionará. para eso necesitas enviar el parámetro como campo de forma oculto. O intenta usar el siguiente código
función makePOSTRequest (url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType(''text/xml'');
http_request.overrideMimeType(''text/html'');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert(''Cannot create XMLHTTP instance'');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open(''POST'', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}