0

ボックス1からボックス2の選択ボックスにオプションを追加および削除するjqueryスニペットを見つけました。これはうまく機能します。ただし、新しいオプションが追加されたボックスの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();
    });
});

});

および2つの選択リストの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

フォームをPOST選択すると、選択したオプションのみが送信され、選択する必要があることに注意してください。コードを使用すると、にオプションを追加するだけselecttoですが、そうではありません。

  • a)それらの1つを選択する(単一の値を投稿する場合)
  • b)PHPページに投稿するためにそれらすべてを選択します。(複数の値を投稿する場合)

2番目のケース(私はそれがあなたが必要としているものだと思いました)では、この単純な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はそれを配列として処理し、すべての値を1つであるかのように取得できるようにします。

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

1つの選択ボックスから2番目の選択ボックスにデータを入力する場合、phpでprint_rを実行するときに表示するには、2番目の選択ボックスで項目を選択する必要があります。

このため、アイテムが2番目の選択ボックスに追加された後(たとえばid selectbox2)、2番目の選択ボックスのすべてのアイテムを選択してフォームを送信できます

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 に答える