Bagaimana cara memanggil fungsi JavaScript dari PHP?
<?php
jsfunction();
// or
echo(jsfunction());
// or
// Anything else?
Kode berikut ini berasal dari xyz.html (pada klik tombol) ia memanggil wait()
dalam xyz.js eksternal . Ini wait()
memanggil 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;
}
}
dan tunggu.php
<?php echo "<script> loadxml(); </script>";
di mana loadxml()
memanggil kode dari file PHP lain dengan cara yang sama.
Sebaliknya loadxml()
berfungsi dengan baik, tetapi tidak disebut seperti yang saya inginkan.
php
javascript
Zeeshan Rang
sumber
sumber
Jawaban:
Sejauh menyangkut PHP (atau sebenarnya, server web pada umumnya), halaman HTML tidak lebih rumit dari string besar.
Semua pekerjaan mewah yang dapat Anda lakukan dengan bahasa seperti PHP - membaca dari basis data dan layanan web dan semua itu - tujuan akhir utama adalah prinsip dasar yang sama persis: menghasilkan string HTML *.
String HTML besar Anda tidak menjadi sesuatu yang lebih istimewa dari itu sampai dimuat oleh browser web. Setelah browser memuat halaman, maka semua keajaiban lainnya terjadi - tata letak, model kotak, pembuatan DOM, dan banyak hal lainnya, termasuk eksekusi JavaScript.
Jadi, Anda tidak "memanggil JavaScript dari PHP", Anda "memasukkan panggilan fungsi JavaScript dalam output Anda".
Ada banyak cara untuk melakukan ini, tetapi di sini ada pasangan.
Hanya menggunakan PHP:
Lolos dari mode php ke mode keluaran langsung:
Anda tidak perlu mengembalikan nama fungsi atau semacamnya. Pertama-tama, berhentilah menulis permintaan AJAX dengan tangan. Anda hanya mempersulit diri sendiri. Dapatkan jQuery atau salah satu kerangka kerja luar biasa lainnya di luar sana.
Kedua, pahami bahwa Anda sudah akan menjalankan kode javascript setelah respons diterima dari panggilan AJAX.
Berikut adalah contoh dari apa yang saya pikir Anda lakukan dengan AJAX jQuery
Sekarang, jika Anda tidak dapat mengirim nama fungsi dari PHP kembali ke panggilan AJAX, Anda dapat melakukannya juga.
* Atau JSON atau XML dll.
sumber
Saya selalu hanya menggunakan
echo "<script> function(); </script>";
atau yang serupa. Anda tidak secara teknis memanggil fungsi dalam PHP, tetapi ini sedekat yang Anda dapatkan.sumber
echo
menjadi variabel dalamPHP
?Per sekarang (Februari 2012) ada fitur baru untuk ini. Periksa di sini
Contoh kode (diambil dari web):
sumber
Kamu tidak bisa Anda dapat memanggil fungsi JS dari HTML yang dihasilkan oleh PHP, tapi itu hal yang penting.
sumber
Itu tidak mungkin. PHP adalah bahasa sisi Server dan sisi klien JavaScript dan mereka tidak benar-benar tahu banyak tentang satu sama lain. Anda akan membutuhkan Penerjemah JavaScript sisi-server (seperti Aptanas Jaxer). Mungkin yang sebenarnya ingin Anda lakukan adalah menggunakan Arsitektur seperti Ajax (fungsi JavaScript memanggil skrip PHP secara tidak sinkron dan melakukan sesuatu dengan hasilnya).
sumber
Jika Anda ingin mengulanginya untuk eksekusi nanti, tidak apa-apa
Jika Anda ingin mengeksekusi JS dan menggunakan hasilnya di PHP, gunakan V8JS
Anda dapat merujuk di sini untuk referensi lebih lanjut: Apa itu Ekstensi dalam php v8js?
Jika Anda ingin mengeksekusi HTML & JS dan menggunakan output di PHP http://htmlunit.sourceforge.net/ adalah solusi Anda
sumber
PHP berjalan di server. JavaScript berjalan di klien. Jadi php tidak dapat memanggil fungsi JavaScript.
sumber
Anda dapat mencoba yang ini juga: -
sumber
coba seperti ini
sumber
Anda mungkin tidak dapat langsung melakukan ini, tetapi perpustakaan Xajax cukup dekat dengan apa yang Anda inginkan. Saya akan menunjukkan dengan sebuah contoh. Berikut tombol di halaman web:
Tebakan intuitif kami
xajax_addCity()
adalah fungsi Javascript, bukan? Ya benar dan salah. Yang keren yang Xajax perbolehkan adalah kita tidak memiliki fungsi JS apa pun yang dipanggilxajax_addCity()
, tetapi yang kita miliki adalah fungsi PHP yang disebutaddCity()
yang dapat melakukan apa pun yang dilakukan PHP!Pikirkan dulu sebentar. Kami sebenarnya menjalankan fungsi PHP dari kode Javascript! Contoh yang terlalu disederhanakan itu hanya untuk membangkitkan selera, penjelasan yang lebih baik ada di situs Xajax, bersenang-senang!
sumber