Данные ответа JQuery AJAX вставляются в тот же идентификатор div, а не на основе идентификаторов флажка - PullRequest
3 голосов
/ 11 января 2012

У меня есть этот код JQuery:

jQuery("#form").click(function() {

$("input[name='copyno']:checked").each(function() {

    checkboxData = "copyno="+$(this).val();

id=$(this).val();

   jQuery.ajax({
      url: "renewall.php",
      type: "POST",
      data: checkboxData,
      cache: false,
      dataType: "text",
      success: function(data) {

    $("#" +id).html(data);             

    }
});
});
});

То, что я пытаюсь сделать, это поместить данные ответа в конкретные div, основываясь на значениях флажков, в данном случае это id, но только данные ответаотображается в том же самом div-идентификаторе (id = $ (this) .val ();) вместо того, чтобы показываться там, где оно имеет то же значение id.

Сом Kind og итерационная проблема

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Копия вашего кода, который вы показали мне в скринкасте:

$("input[name='copyno']:checked").each(function() {
    checkboxData = "copyno="+$(this).val();
    ids = $(this).val();

    jQuery.ajax({

       url: "renewall.php",
       type: "POST",
       data: checkboxData,
       cache: false,
       dataType: "text",
       success: function(data) {

          var divs = $(data).filter(function() { 
                                       return $(this).is('#stil2'); //<-- add semicolon
          });

          divs.each(function() {
             $("#" + ids).html(this);
          });
       }
    });
});

В любом случае, важной частью является правильное объявление переменной id в вашей функции click, например:

$("input[name='copyno']:checked").each(function() {
    checkboxData = "copyno="+$(this).val();
    var ids = $(this).val();

    //rest of your code...

});

Так что обратите внимание, что var instantiator прямо перед divs . Это должно исправить вашу проблему. Если вы этого не сделаете, переменная устанавливается для первого вызова, но перезаписывается вторым. Таким образом, в конце концов, когда оба вызова завершатся, они будут иметь одинаковое значение ids , которое является вашим вторым делителем.

0 голосов
/ 11 января 2012

Сделайте id глобальной переменной в начале скрипта, затем вы сможете использовать ее в функции ajax:

var id=null;

/*... your code... */
...