-1

(问题在这篇文章的底部)

您好,我正在关注本教程

我总共制作了 3 个盒子,1 个包含所有值,2 个用于分隔值。

就像这张照片所示:

在此处输入图像描述

这是我的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,我注意到的是我添加到“和框”或“或框”中的内容不在 var_dump 作为值. 我可以提交它的唯一方法(当我单击下一步时)实际上是突出显示“和框”或“或框”中的值。如果它在“和框”或“或框”中被自动选择为我提交到我的脚本而我不必突出显示它们,我怎么能拥有它?

我这样做的原因是我可以动态地构建一个查询,其中 Where 子句是“AND”或“OR”,这样我就可以让给学生发电子邮件更有活力,而不是一刀切。

任何帮助都会很棒。

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