2012-01-15 2 views
0
var last = 0; 

    function grabProducts(searchstring) { 
     var last = 0; 
     $.post('ajax/products', { 
      method: 'search', 
      string: searchstring, 
      category: $('#search_category').val(), 
      sort: $('.sort').val() 
     }, function (data) { 
      data = $.parseJSON(data); 
      $.each(data, function (index, b) { 
       last = "dada"; 
      }); 
     }); 
    } 
    alert(last); 

"0"으로 알려줍니다. 변수를 "dada"으로 설정하려면 어떻게해야합니까?JS의 함수 안에 변수를 설정하십시오.

답변

6

$.post()비동기이기 때문에이 설정을 할 수 없습니다. $.post()에 전달하는 콜백 함수에 "경고"를 넣어야합니다.

var last=0; 
function grabProducts(searchstring) { 
     var last=0; 
     $.post('ajax/products', { method: 'search', string: searchstring, category: $('#search_category').val(), sort: $('.sort').val() }, function(data) { 
      data = $.parseJSON(data); 
      $.each(data, function(index, b) { 
       last = "dada"; 

      }); 
      alert(last); 
     }); 
     } 

사실 콜백의 요점은 HTTP 요청이 완료 될 때 코드를 실행할 수있는 방법을 제공하는 것입니다.

0

POST 뭔가가 나오면 서버가 응답해야합니다. 수행 :

var last=0; 
function grabProducts(searchstring) { 
      var last=0; 
      $.post('ajax/products', { method: 'search', string: searchstring, category: $('#search_category').val(), sort: $('.sort').val() }, function(data) { 
       data = $.parseJSON(data); 
       $.each(data, function(index, b) { 
        last = "dada"; 
       }); 
        alert(last); 
      }); 
      } 
관련 문제