我选择框:
<select name="select1" id="select1" multiple="multiple">
<option value="8">Civics</option>
<option value="9">English</option>
<option value="10">Economics</option>
</select>
<select id="select2" size="4" multiple="multiple" name="select2[]">
<option value="1">Maths</option>
<option value="2">Physics</option>
<option value="3">Chemistry</option>
<option value="4">Biology</option>
<option value="5">History</option>
<option value="7">Social Studies</option>
<option value="11">Geography</option>
</select>
两个框的数据都是从页面加载时的db中获取的。 我们的想法是从select2中添加/删除选项并将其保存到db中的表中。我在更新之前删除了表中的现有数据。
我面临的问题是在保存数据时,只有添加到select2的新选项才会被保存,如果删除任何选项,我会得到索引超出范围的错误。如何确保读取页面加载中select2中已存在的值?
php代码如下:
<?php
if(isset($_POST['save']))
{
$qry = 'delete * from table_sel2';
$exec = mysqli_query($conn,$qry);
foreach ($_POST['select2'] as $sel_val)
{
echo $sel_val;
$sql = "insert into table_sel2 (select2,status_id) values (".$sel_val.",1)";
$result = mysqli_query($conn,$sql);
}
$message = "Done!";
}
?>
用于在选择框之间移动数据的Jquery代码:
$('#add').click(
function(e)
{
$('#select1 > option:selected').appendTo('#select2');
});
$('#remove').click(
function(e)
{
$('#select2 > option:selected').appendTo('#select1');
});
答案 0 :(得分:0)
在表单提交时选择select2中的所有选项 -
submit_bttn.click(function () {
$('#select2 option').each(function () {
$(this).attr('selected', true);
});
});