0

バッチ更新を行うために、行 ID の配列をコントローラーに送信しようとしています。配列の部分は既に行ったと思います (jQuery が苦手で、まだ学習中です)が、送信方法がわかりません。更新する行の ID を含む配列をコントローラーに渡します。

ここに私の小枝があります:

{% block javascripts %}
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(document).ready(function () {
    $('#selectall').click(function () {
        $('.selectedId').prop('checked', isChecked('selectall'));
    });
});
function isChecked(checkboxId) {
    var id = '#' + checkboxId;
    return $(id).is(":checked");
}
function resetSelectAll(id) {
    // if all checkbox are selected, check the selectall checkbox
    // and viceversa
    if ($(".selectedId").length == $(".selectedId:checked").length) {
        $("#selectall").attr("checked", "checked");
        var ids = [];
        ids.concat(id);
    } else {
        $("#selectall").removeAttr("checked");
         removeItem = id; 
         ids = jQuery.grep(arr, function(value) {
        return value != removeItem;
      });
    }

    if ($(".selectedId:checked").length > 0) {
        $('#edit').attr("disabled", false);
    } else {
        $('#edit').attr("disabled", true);
    }
}

    </script>
{% endblock %}

{% block body %}

<table>

                                <thead>
                                    <tr>
                                        <th><input type="checkbox" id="selectall"></th>
                                        <th>{{ 'general.date'|trans }}</th>
                                        <th>{{ 'general.order_number'|trans }}</th>
                                        <th>{{ 'general.description'|trans }}</th>
                                        <th>{{ 'general.company_name'|trans }}</th>
                                        <th>{{ 'general.name'|trans }}</th>
                                        <th>{{ 'form.status'|trans }}</th>
                                        <th>WinPoints</th>
                                    </tr>
                                </thead>
                                        {% for details in details %}
                                <tbody>
                                    <tr>

                                        <td><div align="center"><input type="checkbox" class="selectedId" name="selectedId" onclick="resetSelectAll({{details.id}});" /></div></td>
                                        <td>{{ details.date | date("m/d/Y") }}</td>
                                        <td>{{ details.order_number }}</td>
                                        <td>{{ details.description }}</td>
                                        <td>{{ details.company }}</td>
                                        <td>{{ details.name }}</td>
                                        <td>{{ details.status }}</td>
                                        <td>{{ details.winpoints }}</td>

                                    </tr>
                                </tbody>
                                        {% endfor %}

                            </table> 
<form action="{{ path('advd_group_batch_p_r_status') }}" method="post" {{ form_enctype(formBase) }}>
                                    {{ form_widget(form) }}
                                    <input class="input_button" type="submit" value="Procesar" />
                                </form>

{% endblock %}

何か案は?さらに、jquery コードに間違いがある場合は、何が間違っているのか教えてください。配列をコントローラーに送信する方法がわからないため、テストできませんでした。

あなたが私に提供できる助けをありがとう。

4

2 に答える 2

0

私のアプリケーションには、次の JavaScript で投稿されたニュースレター フォームがあります。

<script type="text/javascript">
    function subscribeButtonPressed() {

        $.post('{{path('mailchimp_subscribe')}}',
                {
                    EMAIL: $("#mce-EMAIL").val(),
                    listid: $("#listid").val()
                },
                function (response) {
                    ga('send', 'pageview', '{{ path('mailchimp_subscribe') }}');
                    console.log(response);
                    if (response.code == 100 && response.success) {//dummy check
                        var alert = '<div class="span12 padding20" id="formContainer">\n\
                                 <h1>Great!</h1>\n\
                                 </div>';
                        $('#formContainer').fadeOut('slow', function () {
                            $('#thanksContainer').append(alert).hide().fadeIn('slow');
                        });

                    }

                }, 'JSON');
    }

    $(document).ready(function () {
        $('#mc-embedded-subscribe')
                .click(function (event) {
                    var btn = $(this);
                    if ($("#mce-EMAIL").val() != "") {
                        event.preventDefault();
                        btn.button('loading');
                        subscribeButtonPressed();
                    }
                });



    });
</script>

また、Google アナリティクスを介してイベントをログに記録し、いくつかの応答 HTML を表示します。しかし、私はあなたがそれを送信したいパスで $.post を使用するだけで、アイデアを得ることができると思います。フォームの単一の値を選択しますが、フォーム全体を送信することもできます。

于 2013-08-15T17:09:31.150 に答える