Wie kann ich Werte aus einer Mehrfachauswahl in einem Formular veröffentlichen? Wenn ich auf Senden drücke, wird keiner der ausgewählten Werte veröffentlicht.
<form id="form" action="" method="post">
<div>
<select id="inscompSelected" multiple="multiple" class="lstSelected">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="submit" value="submit">
</div>
</form>
html
html-select
user1430949
quelle
quelle
Antworten:
Sie müssen ein
name
Attribut hinzufügen .Da es sich um eine Mehrfachauswahl handelt, sendet der Client auf HTTP-Ebene nur mehrere Name / Wert-Paare mit demselben Namen. Sie können dies selbst beobachten, wenn Sie ein Formular mit verwenden
method="GET": someurl?something=1&something=2&something=3
.Im Fall von PHP, Ruby und einigen anderen Bibliotheken / Frameworks müssten Sie
[]
am Ende des Namens eckige Klammern ( ) einfügen . Die Frameworks analysieren diese Zeichenfolge und präsentieren sie in einem benutzerfreundlichen Format wie einem Array.Abgesehen vom manuellen Parsen der Anforderung gibt es keine sprach- / Framework- / bibliotheksunabhängige Möglichkeit, auf mehrere Werte zuzugreifen, da alle unterschiedliche APIs haben
Für PHP können Sie verwenden:
<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
quelle
[]
(damit er als Array angezeigt wird).$_POST
zu sehen, welche Variablen nach dem Senden gehalten werden.[]
am Ende des Namens ist eine PHP-Sprache, die von HTML nicht benötigt wird und von anderen Sprachen / Frameworks nicht verwendet wird.method="GET"
:someurl?something=1&something=2&something=3
. Die Bibliothek / das Framework, die Sie verwenden, analysiert nur diese Zeichenfolge und präsentiert sie in einem benutzerfreundlichen Format. Abgesehen vom manuellen Parsen der Anforderung gibt es keine sprach- / Framework- / bibliotheksunabhängige Möglichkeit, auf mehrere Werte zuzugreifen, da alle unterschiedliche APIs haben.Versuchen Sie Folgendes: Hier ist select Ihr select-Element
let select = document.getElementsByClassName('lstSelected')[0], options = select.options, len = options.length, data='', i=0; while (i<len){ if (options[i].selected) data+= "&" + select.name + '=' + options[i].value; i++; } return data;
Die Daten liegen in Form der Abfragezeichenfolge iename = value & name = anotherValue vor
quelle