これらの2つのドロップダウンリストを一緒にコーディングしました。1つは国でいっぱいで、もう1つは空です。国をクリックして[追加]を押すと、その国は空のドロップダウンリストに移動します。これは何度でも実行できます。
しかし、フォームが送信されたときに、2番目のドロップダウンリストの投稿データにアクセスできません。これが私のコードです:
JavaScript:
function moveData(dir) {
var sF = document.getElementById(((dir == "back")?"destinationSelect":"sourceSelect"));
var dF = document.getElementById(((dir == "back")?"sourceSelect":"destinationSelect"));
if(sF.length == 0 || sF.selectedIndex == -1) return;
while (sF.selectedIndex != -1) {
dF.options[dF.length] = new Option(sF.options[sF.selectedIndex].text, sF.options[sF.selectedIndex].value);
sF.options[sF.selectedIndex] = null;
}
}
HTML:
<select name="sourceSelect[]" id="sourceSelect" size="5" ondblclick="moveData(); return false;">
<optgroup label="North America">
<option value="NORTHAMERICA_UNITEDSTATES">United States</option>
<option value="NORTHAMERICA_BAHAMAS">Bahamas</option>
<option value="NORTHAMERICA_BARBADOS">Barbados</option>
<option value="NORTHAMERICA_BELIZE">Belize</option>
<option value="NORTHAMERICA_CANADA">Canada</option>
<option value="NORTHAMERICA_COSTARICA">Costa Rica</option>
<option value="NORTHAMERICA_CUBA">Cuba</option>
</select>
<input type="submit" name="forward" id="button" value=">>>>" onclick="moveData(); return false;"/>
<input type="submit" name="back" id="button" value="<<<<" onclick="moveData('back'); return false;"/>
<select name="destinationSelect[]" id="destinationSelect" size="5" ondblclick="moveData('back'); return false;">
そうですね、フォームの送信時に2番目のドロップダウンリストを投稿する方法や、フォームを表示するために何を入力する必要があるのかわかりません。echo $ _POST['destinationSelect[]']のように機能しません。