PHP söz konusu olduğunda (ya da genel olarak bir web sunucusuyla), bir HTML sayfası büyük bir dizeden daha karmaşık bir şey değildir.
PHP gibi dil ile yapabileceğiniz tüm süslü çalışmalar - veritabanlarından ve web servislerinden okuma ve tüm bunlar - nihai hedef aynı temel prensiptir: bir HTML dizesi oluşturun *.
Büyük HTML dizeniz, bir web tarayıcısı tarafından yüklenene kadar bundan daha özel bir şey olmaz. Bir tarayıcı sayfayı yükledikten sonra , diğer tüm sihir gerçekleşir - düzen, kutu modeli şeyler, DOM oluşturma ve JavaScript yürütme dahil olmak üzere diğer birçok şey.
Yani, "PHP'den JavaScript çağırmayın", "çıktınıza bir JavaScript işlev çağrısı eklersiniz".
Bunu yapmanın birçok yolu var, ama işte bir çift.
Sadece PHP kullanarak:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Php modundan doğrudan çıkış moduna kaçmak:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Bir işlev adı veya bunun gibi bir şey döndürmeniz gerekmez. Her şeyden önce, AJAX isteklerini elle yazmayı bırakın. Sadece kendini zorlatırsın. JQuery veya diğer mükemmel çerçevelerden birini alın.
İkinci olarak, AJAX çağrısından yanıt alındıktan sonra zaten javascript kodunu yürüteceğinizi anlayın.
İşte jQuery'nin AJAX ile ne yaptığınızı düşünüyorum
$.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 to
// 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
}
Şimdi, PHP'den AJAX çağrısına bir işlev adı gönderme konusunda kararsızsanız, bunu da yapabilirsiniz.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Veya JSON veya XML vb.