dış değişkene dolardan parametre geçmek. sonrası () geri çağırma

1 Cevap php

. temelde i () böyle diyoruz $ yazılan gelen değeri almak bir parametre tutmak istiyorum:

init = function(){          
var lastpage = getLastPage();
}

        function getLastPage(){
            $.post("getInfo.php",{ 
                last: "yes"
            },
            function(data){
                setLast(data.last);
            },'json');

            return function setLast(data){
                return data;
            }
        }

öylesine ne zaman son yazılan (son sayfa) ulaşır? i getLastPage () işlevinden dönen bir değere sahiptir lastpage değişkeni ile kontrol etmelisiniz.

Ben oldukça javascript işaretçi ve tüm bulanıklık ediyorum. Beyler yardım edin.

update (20/4/2010):

Ben bu gibi, etrafında başka bir yol yaptık:

init = function(){            
  getLastPage();
  if((page+1) == $("#lastpage").val()){
     alert("this is last post");
  }else{
     page++;
     //get info and display to the page here
  }
}
     function getLastPage(){
        $.post("getInfo.php",{ 
            last: "yes"
        },
        function(data){
            $("#lastpage").val(data.last);
        },'json');
    }

i düğmesine ileri tıkladıklarında ilk geçici gizli giriş etiketi (lastpage) değeri saklamak ve daha sonra kontrol için tekrar değeri kapmak işlevini çalıştırın.

Tüm daha uygun bir yol varsa söyle lütfen.

1 Cevap

Sen etrafında bu gibi kodunuzu değiştirmeniz gerekir:

$.post("getInfo.php",{ last: "yes" },
  function(data){ 
    functionToRunAfterYouHaveDataSometimeLater(data.last); 
  }
,'json');

Genel yaklaşımla sorun AJAX ile, zaman uyumsuz bir işlem ile uğraşıyoruz olmasıdır. Bu function(data) { } kısmı daha sonra, o {olacak, bu yüzden sizin return aslında bir şey çıkmıyorsa, later çalışır çalışmaz anlamına gelir [ (3)]}.

Bu yaklaşım yerine, sen $.post() ardından $.post() 's geri arama parçası olarak devam etmek için bu verilere dayanır ne fonksiyon diyoruz gerekir. Kodunuzu sipariş Bu gibi görünüyor yapıyor sonra:

  • $.post() sunucuya bir istek kapalı ateş, yürütür
  • Kodunuzu kalanı $.post() çalışır sonra
  • Later yanıtı sunucudan gelir ve veri var, geri arama yürütür
  • Şimdi bu veri ile gerekenleri yapmaya devam