Antworten:
Das hängt davon ab, was der Zielserver akzeptiert. Hierfür gibt es keinen endgültigen Standard. Siehe auch Wikipedia: Abfragezeichenfolge :
Obwohl es keinen endgültigen Standard gibt, erlauben die meisten Web-Frameworks, dass einem einzelnen Feld mehrere Werte zugeordnet werden (z
field1=value1&field1=value2&field2=value3
. B. ). [4] [5]
Wenn der Zielserver eine stark typisierte Programmiersprache wie Java ( Servlet ) verwendet, können Sie diese im Allgemeinen einfach als mehrere Parameter mit demselben Namen senden. Die API bietet normalerweise eine dedizierte Methode, um mehrere Parameterwerte als Array zu erhalten.
foo=value1&foo=value2&foo=value3
String[] foo = request.getParameterValues("foo"); // [value1, value2, value3]
Das request.getParameter("foo")
wird auch funktionieren, aber es wird nur der erste Wert zurückgegeben.
String foo = request.getParameter("foo"); // value1
Wenn der Zielserver eine schwach typisierte Sprache wie PHP oder RoR verwendet, müssen Sie den Parameternamen mit geschweiften Klammern versehen []
, damit die Sprache ein Array von Werten anstelle eines einzelnen Werts zurückgibt .
foo[]=value1&foo[]=value2&foo[]=value3
$foo = $_GET["foo"]; // [value1, value2, value3]
echo is_array($foo); // true
Wenn Sie immer noch verwenden foo=value1&foo=value2&foo=value3
, wird nur der erste Wert zurückgegeben.
$foo = $_GET["foo"]; // value1
echo is_array($foo); // false
Beachten Sie, dass Sie beim Senden foo[]=value1&foo[]=value2&foo[]=value3
an ein Java-Servlet diese weiterhin erhalten können, jedoch den genauen Parameternamen einschließlich der geschweiften Klammern verwenden müssen.
String[] foo = request.getParameterValues("foo[]"); // [value1, value2, value3]
Ich weiß, dass dieser Beitrag wirklich alt ist, aber ich muss antworten, denn obwohl die Antwort von BalusC als richtig markiert ist, ist sie nicht ganz richtig.
Sie müssen die Abfrage schreiben und "[]" wie folgt hinzufügen:
foo[]=val1&foo[]=val2&foo[]=val3
<input name="user[name]" /> <input name="user[email]" />
innerhalb eines<form>
Containers weiß genau, wie standardmäßig in allen Browsern gesendet werden soll. Eingaben werden zu `user [name] = SOMETEXT & user [email] =SOME@TEXT.com --- es ist die Host-Anwendung, die erforderlich ist, um die Dekodierung zurück in ein Array