0

私はこのサイトのコードを使用しています:jQueryを使用した選択リストの追加/削除

表示部分はすべて設定されていますが、フォームを送信すると、ユーザーの選択を読み取ることができるように$_POSTに何も設定されていません。

これが私が設定したフォームです:

<?php
    <form id='setTasks' action='?action=ae&view=departmentTasks' method='post'>
        <table>
            <tr>
                <td valign='top'>
                    <select name='selectfrom' id='select-from' multiple size='5'>";
                        for ($i = 0; $i < count($unusedTasks); $i++)
                            echo "<option value='" . $unusedTasks[$i]['taskID'] . "'>" . $unusedTasks[$i]['taskName'] . "</option>";
                echo "</select>
                </td>
                <td valign='top'><a href='JavaScript:void(0);' id='btn-add'>Add &raquo;</a></td>
                <td valign='bottom'><a href='JavaScript:void(0);' id='btn-remove'>&laquo; Remove</a></td>
                <td>
                    <select name='selectto' id='select-to' multiple size='5'>";
                        for ($i = 0; $i < count($departmentTasks); $i++)
                            echo "<option value='" . $departmentTasks[$i]['taskID'] . "'>" . $departmentTasks[$i]['taskName'] . "</option>";
            echo "</select>
                </td>
            </tr>
            <tr>
                <td>
                    <input type='hidden' name='departmentID' value='" . $departmentID . "' />
                    <input type='hidden' name='submitFinal' value='1' />
                    <input type='submit' name='submitForm' value='Assign Tasks' />&nbsp;&nbsp;
                    <input type='button' value='Cancel' onclick='javascript:history.go(-1);' />
                </td>
            </tr>
        </table>
    </form>";
?>

そして機能:

$(document).ready(function() {
    $('#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();
        });
        }); 
    });

フロントエンド(アイテムを前後に移動する)は正常に機能しますが、var_dump($ _ POST)を実行すると、選択したフィールドから情報が取得されません。私が欠けているものを見ることができる人はいますか?

4

1 に答える 1

0

選択リストは選択された項目のみを送信するため、フォーム データは取得されません。

解決策の 1 つ: すべてのオプションをループして、投稿する前に選択済みとして設定します。

別の解決策: 投稿する前に、必要な情報をオプションから隠しフィールドにコピーします。

于 2012-07-09T18:07:41.397 に答える