更新选择框选项并保存到数据库

时间:2017-03-30 05:14:33

标签: php jquery

我选择框:

<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');  

            }); 

1 个答案:

答案 0 :(得分:0)

在表单提交时选择select2中的所有选项 -

    submit_bttn.click(function () {
      $('#select2 option').each(function () {
          $(this).attr('selected', true);
      });
    });