Ajax调用没有得到真正的价值

时间:2016-04-22 13:34:52

标签: javascript php jquery ajax twig

我有以下.html代码:

{% for item in pager.recordList %}
  <td>
    <a id="log_ig" class="log_ig" href="{{ 'my_route'|url_route }}">{{ item.statut }}</a>
    <input type="hidden" value="{{ item.id }}" id="ig_hidden">
  </td>
{% endfor %}

和jquery:

$(document).ready(function () {
        $(function() {
        $('.log_ig').click(function(event) {
            event.preventDefault();
            $.ajax({
                url: '{{ 'my_route'|url_route }}',
                data: {
                    id_ig: $('#ig_hidden').val()
                },
                success :  function(data){
                    $.nmData(data);
                },
                dataType: 'html'
            })
        });
        });
    });

问题是请求中的id_ig每次都是数组中的第一个值。所以,如果我有一个item.id [1..10]数组,我的$('#ig_hidden').val()会返回第一个值。我不明白我的问题在哪里。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些不好的概念。

{% for item in pager.recordList %}
  <td>
    <a id="log_ig" class="log_ig" href="{{ 'my_route'|url_route }}">{{ item.statut }}</a>
    <input type="hidden" value="{{ item.id }}" name="ig_hidden">
  </td>
{% endfor %}

在输入中将id更改为name。 Id应该是唯一的。

我猜你在<form></form>

中有这个代码

您应该在ajax调用上序列化并发送该数据:

$(document).ready(function () {
        $(function() {
        $('.log_ig').click(function(event) {
            event.preventDefault();
            $.ajax({
                url: '{{ 'my_route'|url_route }}',
                data: $('#some-form').serialize(),
                success :  function(data){
                    $.nmData(data);
                },
                dataType: 'html'
            })
        });
        });
    }); 

通过这种方式,您将发送表单中的所有数据!