2013-06-03 27 views
0

我正在使用多重选择让用户保存最喜欢的网站是什么。 不幸的是,我无法发布图片和应用程序不能在线工作。我会尽力解释如何多选择显示出来:PHP - 取得多选择的取消选择的值

LEFT BOX(其值未选择) 右边的框中(其值被选择)

用户可以添加值从左到右盒子,这工作正常。但是当他们保存时,我只能得到新的选定值。之前选择的值不会传递给表单处理器。这样我也无法确定是否从右列删除了一个值。我希望左侧框中的所有值也可以发布。然后我知道哪些值可以在数据库中被“取消选择”。

当从左侧框中选择一个值时,它将从此框中消失并出现在右侧框中。

这是形式的样子:

<select multiple name="main_categories_1[]" class="multiselect" id="select1"> 
    <option value="26">SAP</option> 
    <option value="29">SEO</option> 
    <option value="22">Servicemanager</option> 
    <option value="28">SharePoint</option> 
    <option value="34">Stages</option> 
    <option value="6">Systeembeheerder</option> 
    <option value="5">Tester</option> 
    <option value="31">UIDesigner</option> 
    <option value="35">Zend Dev</option> 
</select> 

因此,澄清。我得到新选择的值,我没有得到未经选择的值和已经选择的值。我还想要未选中的值。

编辑

好了,解决了这个问题。就像ejrowley说的,我需要用javascript来选择所有“选定”值。完成这样的:

$(document).ready(function() { 
    $('#saveAccount').submit(function() { 
     $("#select2").find('option').attr('selected',true); 
    }); 
}); 
+2

难道你没有已经在你的服务器上的所有值? –

+0

所有的值都在数据库中,为什么? – Hak

+0

为什么你想从客户那里得到它们? –

回答

0

即使你解决它......但是,只是为了不同的目的,你可以试试这个代码:

var selected = []; 
var noselected = []; 

$(document).on('click', '#button', function(){ 
    $.each($('#select2 option'), function (key, value) { 

     if (!$(this).prop('selected')) { 
      noselected[key] = $(this).val(); 
      //alert($(this).val()); 
     } else { 
      selected[key] = $(this).val(); 
      //alert($(this).val()); 
     } 
    }); 
}); 

有了这个,你得到2个阵列,1与选定的值和另一个与未选中。

这里是JsFiddle Demo