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
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

Nasıl Javascript Çağırmak İçin Bir Bağ...
AngularJS. Nasıl kontrol bileşeni dışı...
Bir html düğme bir javascript işlevini...
Nasıl sayfa yük JavaScript işlevini ça...
Nasıl bir JavaScript işlevini çağırır ...