【发布时间】:2014-01-31 23:32:07
【问题描述】:
我有与此类似的多选功能(请参阅链接):http://jsfiddle.net/eUDRV/341/。
HTML 代码:
<section class="container" >
<div>
<select id="list" name="list"size="15">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<div>
<br><br><br>
<input type="button" id="button_left" value="<--"/>
<input type="button" id="button_right" value="-->" />
</div>
<div>
<select id="selected_values" size="15"></select>
<input name="selected_values" type="hidden"/>
</div>
jQuery/Javascript 代码:
$(document).ready(function () {
$("#button_right").click(function () {
var selectedItem = $("#list option:selected");
var added = false;
$("#selected_values > option").each(function() {
if ($(this).text() > $(selectedItem).text()) {
$(selectedItem).insertBefore($(this));
added = true;
return false;
}
});
if(!added) $(selectedItem).appendTo($("#selected_values"));
updateHiddenField();
});
$("#button_left").click(function () {
var selectedItem = $("#selected_values option:selected"), activeValues;
var added = false;
$("#list > option").each(function() {
if ($(this).text() > $(selectedItem).text()) {
$(selectedItem).insertBefore($(this));
added = true;
return false;
}
});
if(!added) $(selectedItem).appendTo($("#list"));
updateHiddenField();
});
function updateHiddenField () {
$('input[name="selected_values"]').val(
$.map($('#selected_values option:selected').toArray(), function (e) {
return e.value;
})
);
}
});
PHP 代码:
if(!empty($_POST['selected_values'])) {
$_POST['selected_values'] = explode(',', $_POST['selected_values']);
foreach($_POST['selected_values'] as $x) {
$query = "INSERT INTO $table (id1, id2) VALUES ($id1Value, $x)";
db_query($query);
我的目标是遍历所有移入左列的值,并使用 PHP 将它们输入数据库。我能够使此功能正常工作,但是,我遇到了与此处引用的完全相同的问题:how can I get all options in a multi-options select using PHP?。我正在使用 $_POST["leftValues"] 访问这些值,但是如果用户单击其中一个选项,则只有该选项会被输入到数据库中。不幸的是,公认的解决方案对我不起作用。
$("form:has(#leftValues)").on('submit', function () {
$("#leftValues option").prop('selected', true);
});
有人可以向我解释如何让这个解决方案为我工作,或者另一种方法来确保 $_POST["leftValues"] 将包含所有选项,而不仅仅是选定/突出显示的选项?非常感谢任何回应。
【问题讨论】:
标签: javascript php jquery