Symfony复选框事件,带有多个字段的{ajax

时间:2017-01-17 19:41:14

标签: javascript php jquery symfony

我使用symfony并在twig上渲染了一些数组数据,并在js中设置了复选框,用于事件点击,复选框,创建ajax并在另一个操作中发送数据。我的问题是如何发送更多参数,现在不仅发送id,因为添加id到标签输入属性,但是需要添加地址一些地方。添加address?的地方:

{% for taskExecution in taskExecutions %}
        <tr>
            <td>
                <input class="searchType" type="checkbox" name="SharingNotification" id={{ taskExecution.id }}>
                    <label class="searchtype2label"></label>
                </input>
            </td>
            <td>
                {{ taskExecution.address }}
            </td>
{% endfor %}

我的js

$('.searchType').click(function(event) {
    var objToSend = {};
    objToSend[event.target.id] = $(this).is(":checked") === true ? 1 : 0;
    $.ajax({
        type: "POST",
        url: '/app_dev.php/api/bound_invoice/rows/froms/tasks',
        data: {ids: objToSend},
        success: function (data) {
            alert('it worked');
            alert(data);
            $('#container').html(data);
        },
        error: function () {
            alert('it broke');
        },
        complete: function () {
            alert('it completed');
        }
    });
}

);

我想发送另一个属性,例如taskExecution.address 像这样

        objToSend['address'] = [event.target.address];

怎么办呢?

1 个答案:

答案 0 :(得分:0)

如果我正确地理解了你的问题,那么下面的内容应该可以解决问题:

$('.searchType').click(function(event) {
    $.ajax({
        type: "POST",
        url: '/app_dev.php/api/bound_invoice/rows/froms/tasks',
        data: {
            ids: { event.target.id : $(this).is(":checked") === true ? 1 : 0 },
            address : event.target.address
        },
        success: function (data) {
            alert('it worked');
            alert(data);
            $('#container').html(data);
        },
        error: function () {
            alert('it broke');
        },
        complete: function () {
            alert('it completed');
        }
    });
}

);

您的代码存在的问题是您要将要提交的所有内容添加到数据对象的“ids”属性中。根据我的更改,ids将作为1或0传递,address将以所需的值传递。