SORU
25 HAZİRAN 2009, PERŞEMBE


Nasıl PHP bir JavaScript işlevini çağırmak için?

Nasıl PHP bir JavaScript işlevini çağırmak için?

<?php

  jsfunction();
  // or
  echo(jsfunction());
  // or
  // Anything else?

Aşağıdaki koduxyz.htmlwait() Bir çağırır (düğmeye bir tıklama) bir dışxyz.js. wait() Bu aramalar wait.php.

function wait() 
{
  xmlhttp=GetXmlHttpObject();
  var url="wait.php"; \
  xmlhttp.onreadystatechange=statechanged; 
  xmlhttp.open("GET", url, true); 
  xmlhttp.send(null);
} 

function statechanged()
{ 
  if(xmlhttp.readyState==4) {
       document.getElementById("txt").innerHTML=xmlhttp.responseText;
  }
}

vewait.php

<?php echo "<script> loadxml(); </script>"; 

loadxml() başka bir PHP dosyasından kod aynı şekilde çağırır.

loadxml() dışında çalışıyor, ama istediğim gibi çağrıldığını değildir.

CEVAP
25 HAZİRAN 2009, PERŞEMBE


Bak, işte anlaşma. PHP ilgili (ya da gerçekten, genel olarak bir web sunucusu) olarak, bir HTML sayfası hiçbir şey koca bir dize daha karmaşık bir hal alır İşte bu kadar.

PHP gibi bir dil ile süslü çalışma veritabanları ve web hizmetlerinden okuma ve hepimizin nihai hedefi aynı temel prensip vardır: HTML* bir karakter dizisi oluşturur.

Büyük bir HTML dize bir web tarayıcısı tarafından yüklenen kadar bundan daha özel olamaz. Bir tarayıcı sayfası yüklendikten sonra,sonratüm diğer sihirli tasarımı, kutu modeli eşyaları, DOM nesil, ve daha birçok şey, JavaScript yürütme de dahil olmak üzere.

Bu kavram kavramak sonra, farkındasın umarım "PHP JavaScript", sadece "çıkış JavaScript işlev çağrısı vardır" derler.

Bunu yapmak için birçok yolu vardır, ama burada bir çift.

Sadece PHP kullanarak

echo '<script type="text/javascript">'
   , 'jsfunction();'
   , '</script>'
;

doğrudan çıkış için php, mod kaçıyor

<?php
// some php stuff
?>
<script type="text/javascript">
  jsFunction();
</script>

Bir işlev adı veya bunun gibi bir şey dönmek gerek yok. Her şeyden önce, elle AJAX istekleri yazma. Sadece kendin için zorlaştırıyorsun. Ya da diğer iyi çerçeveler biri orada bir WordPress kullanmak.

İkincisi, sen zaten cevabı AJAX çağrı alındığı anda javascript kodu çalıştırma olacağını anlamak.

İşte jQuery AJAX ile gidiyorsun sanırım iyi bir örnek

$.get(
    'wait.php'
  , {}
  , function( returnedData )
    {
      document.getElementById("txt").innerHTML = returnedData;

      //  Ok, here's where you can call another function
      someOtherFunctionYouWantToCall();

      // But unless you really need to, you don't have do
      // We're already in the middle of a function execution
      // right here, so you might as well put your code here
    }
  , 'text'
);


function someOtherFunctionYouWantToCall()
{
  // stuff
}

Eğer PHP bir işlev adı AJAX çağrısı geri göndermeyi seti ölürsen, bunu da yapabilirsiniz.

$.get(
    'wait.php'
  , {}
  , function( returnedData )
    {
      // Assumes returnedData has a javascript function name
      window[returnedData]();
    }
  , 'text'
);

* Ya JSON ya da XML ya da her neyse

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007