2013-03-26 4 views
0
$.ajax({ 
      url:"<?php echo site_url('proposal/getContact');?>/"+client, 
      type: 'GET', 
      dataType: 'json', 
      success:function(data) { 
      //On succes the data is returned from the url and used accordingly. 
       htm='<option value="">Select</option>'; 
       for(i=0;i<data.length;i++){ 
        htm +='<option value="'+data[i].Id+'">'+data[i].Name+'</option>'; 
       } 
       $('select[id="ProjectContact"]').html(htm); 
       } 
      }); 

Я хочу использовать переменные данные позже, поэтому, когда я выбираю контакт проекта, я должен иметь дело с теми же данными. Я попытался с помощьюКак сохранить данные AJAX для использования позже?

$('select[id="ProjectContact"]').change(function() { 
    var contact=$('select[id="ProjectContact"]').val(); 
       htm='<div class="span2 text-right"> <img class="img-rounded"> </div>'; 
       htm+='<div class="span4">'; 
       htm+='<strong>'; 
       for(i=0;i<data.length;i++){ 
        if(data[i].Id != contact) 
         continue; 
        htm+=data[i].Name+ 
        "</strong>,<br/>"+data[i].Designation+", <br/>"+ 
        data[i].PhoneNumber+",<br />"; 
        htm+=data[i].Email+",<br/>"+ 
        data[i].FacebookUrl+",<br />"+data[i].TwitterUrl+",<br/>"+ 
        data[i].LinkedinUrl; 
        htm+='</div>'; 
       } 
       $("#ContactDetails").html(htm); 

}); 

говорит данные не распознаются. Спасибо.

ответ

1

Вы должны хранить данные в переменной вне области видимости функции успеха:

var myData= {}; 
$.ajax({ 
     url:"<?php echo site_url('proposal/getContact');?>/"+client, 
     type: 'GET', 
     dataType: 'json', 
     success:function(data) { 
      myData.data = data; 
     } 
    }); 

Вы тогда должны быть в состоянии обратиться к MyData позже. Однако как ваш более поздний код знает, что вызов ajax завершен?

+0

Мне нужны данные только тогда, когда вызов ajax успешный, и мне не нужно беспокоиться о его сбое. Данные, которые я использую, не входят в сферу применения ajax success (function() {}). Я хочу, чтобы он использовался из этой функции, поскольку это другой выбор события. Позвольте мне попробовать использовать вышеуказанный метод. Спасибо – spod

+0

Я попытался сохранить данные в ContactData = data и использовать его позже. Я получил эту ошибку, говоря «Uncaught ReferenceError: ContactData не определен» – spod

+0

Uncaught TypeError: Невозможно прочитать свойство «длина» неопределенного – spod