2012-11-09 41 views
1

期望的結果: 第二次ajax調用應該將返回的數據注入DOM #co_label中的DOM。jquery Ajax嵌套在以前的Ajax成功fn不更新DOM

  • 第一個警報()在它
  • 具有正確的數據第二警報()顯示正確的信息已經由第二AJAX調用返回。但是,該數據不會被注入到DOM中。
  • 有在Chrome的調試器沒有控制檯錯誤

的jQuery/JavaScript的:

$(document).on('click', '.mledit', function(event) { 
    var company_id = this.id.split('editcopro_')[1]; 
    $.ajax({ 
     type: "POST", 
     url: "ajax/ax_all_ajax_fns.php", 
     data: 'request=edit_company_data&company_id='+company_id, 
     success:function(data){ 
      $('#co_label').html(data); 
      var client_user_id = company_id; 

      $('#co_label').dialog({ 
       autoOpen: true, 
       height: 600, 
       width: 800, 
       modal: true, 
       buttons: 
        { 
         Okay: function() { 
          //Var defs for cn, cp, cw, ct, a1, etc. 
          $.ajax({ 
           type: "POST", 
           url: "ajax/ax_all_ajax_fns.php", 
           data: 'request=update_edited_company_data&client_user_id='+client_user_id+'&co_name='+cn+'&co_phone1='+cp+'&co_website='+cw+'&co_city='+ct+'&co_addr1='+a1+'&co_addr2='+a2+'&co_acct_name='+an+'&co_acct_phone='+ap+'&co_acct_email='+ae+'&co_prov='+pv+'&co_pcode='+pc+'&co_country='+co+'&notes='+co_notes, 
           success: function(data) { 
            $('#alert').html(data); 
            $('#alert').dialog('open'); 

            $.ajax({ 
             type: "POST", 
             url: "ajax/ax_all_ajax_fns.php", 
             data: 'request=update_edited_mailing_label&user_level='+user_level+'&user_id=' + user_id+'&user_type=' + user_type, 
             success:function(data){ 
              $('#label_top').html(data); 
             } 
            }); 
           } //End success 
          }); //End ajax[update_edited_company_data] 
          $(this).dialog("close"); 
         }, 
         Cancel: function() { 
          $(this).dialog("close"); 
          window.location = ''; 
         } 
        } 
      }) 
     } 
    }); 
}); 

UPDATE:

我剛剛注意到這一點:尋求通過Chrome開發者和/或螢火蟲,在JQueryUI dlg關閉後,文檔中缺少整個#co_label DIV。你嘗試過使用.VAL(數據)這樣

$('#co_label').dialog({ 

回答

1

使用的.html(數據),而不是:

東西出現此線之間要發生的事情:

$('#co_label').html(data); 

和這條線

$('#co_label').val(data); 

API documentation指出,在處理XML時不能使用.html(),這可能不是問題,但我遇到了使用.html之前的問題,並且使用了.val代替。如果您只是將非HTML格式的數據插入空的ID,則.val()應該適合您。

+0

謝謝 - 好的想法,但沒有喜悅。可悲的是,同樣的結果。儘管如此,我更新了一些新的信息,以增加任何新的線索。 – gibberish