Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-获取multi-select的未选择值_Php_Jquery_Html_Multi Select - Fatal编程技术网

PHP-获取multi-select的未选择值

PHP-获取multi-select的未选择值,php,jquery,html,multi-select,Php,Jquery,Html,Multi Select,我正在使用multi-select为用户保存他们最喜欢的网站。 不幸的是,我无法发布图像,应用程序无法在线工作。我将尝试解释multi-select是如何显示的: 左框(带有未选择的值) 右框(带有选定的值) 用户可以从左到右添加值,这很好。但当它们保存时,我只能获得新的选定值。先前选择的值不会传递给表单处理器。这样,我也无法确定是否从右列中删除了值。我希望左侧框中的所有值也被发布。然后我知道哪些值可以在数据库中“取消选择” 从左框中选择值时,该值将从此框中消失并显示在右框中 这是表单的外观:

我正在使用multi-select为用户保存他们最喜欢的网站。 不幸的是,我无法发布图像,应用程序无法在线工作。我将尝试解释multi-select是如何显示的:

左框(带有未选择的值) 右框(带有选定的值)

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

从左框中选择值时,该值将从此框中消失并显示在右框中

这是表单的外观:

<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>

即使你解决了它。。。但是,为了多样性,您可以尝试以下代码:

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());
        }
    });
});
这样您可以得到两个数组,一个带有选定值,另一个带有未选定值


这是一个。

即使你解决了它。。。但是,为了多样性,您可以尝试以下代码:

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());
        }
    });
});
这样您可以得到两个数组,一个带有选定值,另一个带有未选定值


这是一个。

难道您的服务器上没有所有的值吗?所有的值都在数据库中,为什么?为什么您要从客户端获取这些值?如果您有5个选择A-E,并且用户选择了B和D。用户没有选择的值是什么?您只是要求multiselect执行它不是为之设计的作业。要使其正常工作,请在提交时使用一些javascript,它将选择右侧multiselect中的所有项目,然后将它们传递到服务器。难道服务器上没有所有值吗?所有值都在数据库中,为什么?为什么你想从客户端得到它们?如果你有5个选择A-E,而用户选择了B和D。用户没有选择的值是什么?你只是要求multiselect做一项它不是为之设计的工作。要使其工作,请在提交时使用一些javascript,它将选择右侧multiselect中的所有项目,然后将它们传递到服务器