2012-01-15 26 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リクエストが完了したときにコードを実行する方法を提供することです。あなたがPOST何か、それは、サーバが応答するまでの時間を必要とする

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); 
      }); 
      } 
関連する問題