-1

(質問はこの記事の一番下にあります)

こんにちは、私はこのチュートリアルに従っています。

全部で 3 つのボックスを作成しました。

この図のように:

ここに画像の説明を入力

これは私のJqueryです:

<script type="text/javascript">
        $(document).ready(function() {
        $("#and").click(function() {
            $("#totalselect option:selected").each(function() {
            $("#select-and").append("<option value='" + $(this).val() + "'>" + $(this).text() + "</option>");
            $(this).remove();
            });
        });
        $("#removeand").click(function() {
            $("#select-and option:selected").each(function() {
            $("#totalselect").append("<option value='" + $(this).val() + "'>" + $(this).text() + "</option>");
            $(this).remove();
            });
        });
        $("#or").click(function() {
            $("#totalselect option:selected").each(function() {
            $("#select-or").append("<option value='" + $(this).val() + "'>" + $(this).text() + "</option>");
            $(this).remove();
            });
        });
        $("#removeor").click(function() {
            $("#select-or option:selected").each(function() {
            $("#totalselect").append("<option value='" + $(this).val() + "'>" + $(this).text() + "</option>");
            $(this).remove();
            });
        });
        });
    </script>

そして、これは私のHTMLです:

<div id="mass_options">
        <a href="JavaScript:void(0);" id="and">And</a>
        <a href="JavaScript:void(0);" id="or">Or</a>
        <select name="totalselect[]" id="totalselect" multiple size="5">
            <?php foreach ($reasons as $r) { ?>
                <option value="reason_<?php echo $r['reason_id'] ?>">Reason: <?php echo $r['reason'] ?></option>
            <?php } ?>
            <?php foreach ($options5 as $key => $value) { ?>
                <option value="status_<?php echo $key ?>">Session Status: <?php echo $value ?></option>
            <?php } ?>
            <?php foreach ($info as $key => $value) { ?>
                <option value="action_<?php echo $key ?>">Action: <?php echo $value ?></option>
            <?php } ?>
        </select>
        </div>

        <select name="and" id="select-and" multiple size="5" class="selectnew">
        </select>
        <select name="or" id="select-or" multiple size="5" class="selectnew">
        </select>
        <br>
        <br>
        <a href="JavaScript:void(0);" id="removeand">Remove And</a>
        <a href="JavaScript:void(0);" id="removeor">Remove Or</a>

問題

[次へ] をクリックすると、すべての投稿値の var_dump を実行するページに移動します。「and ボックス」に追加したもの、または「or ボックス」が値として var_dump に含まれていないことに気付きました。 . (次へをクリックしたときに)送信できる唯一の方法は、「andボックス」または「orボックス」内の値を実際に強調表示することです。「andボックス」または「orボックス」のいずれかにある場合、それらを強調表示せずにスクリプトに送信するために自動的に選択される場合、どうすればよいですか?

私がこのようにしている理由は、「AND」または「OR」である Where 句を使用してクエリを動的に作成できるためです。

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

3

ネイティブフォーム送信では、オプションを「強調表示」する必要があります。選択したオプションのみがポストに送信されます。データを送信する前に、jQuery でそれらを選択できます。

$("form *:submit").click(function() { /* choose a better selector for submit button */
    $("#select-and options, #select-or options").attr("selected", true);
    $(this).parents("form:first").submit();
});

「自動選択」を使用しない別の方法は、AJAX を使用して投稿を送信することです。このようにして、送信データを準備できます。

..または、jQuery を次のように編集します。

<script type="text/javascript">
    $(document).ready(function() {
        $("#and").click(function() {
            $("#totalselect option:selected").appendTo("#select-and");
        });
        $("#or").click(function() {
            $("#totalselect option:selected").appendTo("#select-or");
        });
        $("#removeand").click(function() {
            $("#select-and option:selected")
                .removeAttr("selected")
                .appendTo("#totalselect");
        });
        $("#removeor").click(function() {
            $("#select-or option:selected")
                .removeAttr("selected")
                .appendTo("#totalselect");
        });
    });
    </script>
于 2013-05-04T19:01:56.123 に答える