0

我找到了一个 jquery 片段,可以从框 1 到框 2 的选择框中添加和删除选项。这很好用。但是,当我尝试在添加新选项的框的 PHP 中 print_r 时,它不会显示。提交后我什至无法在资源上看到它。有什么解决办法吗?

$('#btn-add').click(function(){
    $('#select-from option:selected').each( function() {
            $('#select-to').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
        $(this).remove();
    });
});
$('#btn-remove').click(function(){
    $('#select-to option:selected').each( function() {
        $('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
        $(this).remove();
    });
});

});

和两个选择列表的 html

            <select class="gen" name="selectfrom" id="select-from" multiple size="6" style="width: 150px;">

        </select>
        <input name="" id="btn-add" type="button" class="add_list" style="vertical-align: top;">
        &nbsp;&nbsp;
        <input name="" id="btn-remove" type="button" class="remove_list" style="vertical-align: top;">
        <select class="gen" name="selectto" id="select-to" multiple size="6" style="width: 150px;">
        </select>

提交后,我从 selectto 框中检查 $_POST['selectto'] 。有任何想法吗?

编辑:php中的foreach;

                                $articles_ary = array();
                            foreach ($_POST['selectto[]'] as $options)
                            {
                                if (!empty($options))
                                {
                                    $articles_ary[] = $options;
                                }
                            }

                            print_r($articles_ary);
4

2 回答 2

0

当您从一个选择框输入数据到第二个选择框时,您需要在第二个选择框中选择项目,以便在您在 php.ini 中执行 print_r 时显示。

为此,在将项目添加到第二个选择框后说 id selectbox2,然后您可以选择第二个选择框的所有项目,然后提交表单

for (var i = 0; i < selectbox2.options.length; i++) {
        selectbox2.options[i].selected = true;
}
//then Submit form like this, assuming your form name is form1
document.form1.submit();

希望这可以帮助

于 2012-08-08T17:00:01.613 回答
0

当您POST选择表单时,仅提交选定的选项并记住必须选择它。使用您的代码,您只是将选项添加到selectto,但您不是:

  • a)选择其中一个(如果您想发布单个值)
  • b) 选择将它们全部发布在 PHP 页面上。(如果您想发布多个值)

在第二种情况下(我认为这是您需要的),您可以使用这个简单的 jQuery 函数:

$("#buttonusedtosendform").click(function(e){
    e.preventDefault();
    $('#select-to option').each( function() {
      $(this).attr('selected', true);  //with this you select all the option
    });
    $('formname').submit();
});

请记住,如果你想检索一个选择的所有选项,PHP你将不得不使用一个小技巧,通过在最后用方括号命名选择(这是 PHP 提供的一个功能,它将覆盖前一个变量最新分别解析每个):例如。selectto => selectto[] 这样 php 会将它作为一个数组处理,并让您检索所有值,就好像它是一个一样:

foreach($_POST['selectto[]'] as $options){}
于 2012-08-08T17:08:10.083 回答