フォームの複数選択から値を投稿するにはどうすればよいですか? [送信]をクリックすると、選択した値が投稿されません。
<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>
name
属性を追加する必要があります。
これは複数選択であるため、HTTPレベルでは、クライアントは同じ名前の複数の名前/値のペアを送信するだけです。method="GET": someurl?something=1&something=2&something=3
。
PHP、Ruby、および他のいくつかのライブラリ/フレームワークの場合、角括弧([]
)名前の最後。フレームワークはその文字列を解析し、配列のような使いやすい形式で提示します。
要求を手動で解析する以外に、複数の値にアクセスする言語/フレームワーク/ライブラリに依存しない方法はありません。それらはすべて異なるAPIを持っているためです
PHPでは、次を使用できます。
<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
これを試してください:ここでselectはselect要素です
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;
データはクエリ文字列の形式です。つまり、name = value&name = anotherValue