" untuk menambah JavaScript"/> " untuk menambah JavaScript">

Rumah  >  Artikel  >  pembangunan bahagian belakang  >  kaedah panggilan php dalam js

kaedah panggilan php dalam js

王林
王林asal
2023-05-07 10:18:072117semak imbas

Dalam pembangunan web, selalunya perlu memanggil kaedah dalam JavaScript sisi klien pada bahagian pelayan untuk menjadikan halaman lebih fleksibel dan dinamik. Artikel ini akan menerangkan cara memanggil kaedah JavaScript dalam kod PHP.

Perkara pertama yang anda perlu fahami ialah PHP ialah bahasa skrip bahagian pelayan yang berjalan di bahagian pelayan dan boleh menjana halaman dinamik. JavaScript ialah bahasa skrip sebelah klien yang dijalankan dalam penyemak imbas dan boleh berinteraksi dengan serta memproses halaman web.

Dalam halaman web, anda boleh menggunakan teg "" untuk memasukkan kod JavaScript ke dalam halaman, supaya kod JavaScript akan dijalankan secara automatik apabila penyemak imbas memuatkan halaman web. Biasanya, untuk kemudahan penggunaan, kod JavaScript ditulis secara berasingan ke dalam fail .js, dan kemudian dirujuk dalam halaman HTML melalui "".

Sekarang andaikan kita perlu memanggil fungsi JavaScript bernama "hello" dalam kod PHP dan hantar parameter "dunia" kepadanya. Operasi khusus adalah seperti berikut:

Langkah 1: Buat fungsi JavaScript

Dalam fail .js kami, anda boleh mentakrifkan fungsi JavaScript seperti ini:

fungsi hello( name){

console.log("Hello, " + name);

}

Fungsi di atas boleh menerima nama parameter dan mengeluarkan ucapan kepada konsol.

Langkah 2: Rujuk fail .js dalam halaman HTML

Dalam halaman HTML, kita perlu merujuk fail .js di atas. Dengan mengandaikan bahawa fail .js kami dinamakan "test.js", ia boleh dirujuk seperti ini:

Halaman ini Kod dalam fail test.js akan dijalankan secara automatik apabila dimuatkan, termasuk fungsi helo yang kami takrifkan.

Langkah 3: Tulis kod PHP

Sekarang kita telah menentukan fungsi JavaScript dalam halaman, kita boleh memanggilnya dalam kod PHP.

Pertama, anda perlu mendapatkan objek konteks JavaScript dalam penyemak imbas melalui kod PHP. Kita boleh mencapai ini melalui elemen iframe tersembunyi dalam halaman HTML. Kod khusus adalah seperti berikut:

Perkara di atas kod mencipta Iframe yang tidak kelihatan yang tidak menjejaskan halaman semasa memuatkan. Seterusnya, panggil fungsi berikut dalam kod PHP untuk mendapatkan objek konteks JavaScript:

function getJSContext(){

$js = <<<EOT
    <script type="text/javascript">
        function getContext(){
            return window;
        }
    </script>

EOT;

echo $js;
flush();
ob_flush();
$ctx = '<script type="text/javascript">getParent().getContext();</script>';
while (true){
    $ctx = '<script type="text/javascript">getParent().getContext();</script>';
    if ($ctx) break;
    usleep(500);
}
return $ctx;

}

Fungsi getJSContext di atas akan membuat blok kod HTML yang mengandungi fungsi untuk mendapatkan objek konteks JavaScript dan mengeluarkannya ke halaman. Kemudian melalui komunikasi antara halaman induk dan iframe, objek konteks JavaScript diperoleh dan dikembalikan.

Seterusnya, anda boleh menggunakan fungsi eval() PHP untuk memanggil fungsi helo dalam konteks JavaScript dan lulus parameter "dunia". Kod khusus adalah seperti berikut:

$ctx = getJSContext();
eval("$ctx.hello('world');");

Kod di atas mula-mula diperolehi Objek konteks JavaScript, dan gunakan fungsi eval() untuk memanggil fungsi helo di dalamnya, melepasi parameter "dunia". Ini melengkapkan proses memanggil fungsi JavaScript dalam PHP.

Kesimpulan:

Melalui kaedah di atas, kami boleh memanggil fungsi JavaScript dengan mudah dalam kod PHP dan lulus parameter serta operasi lain di dalamnya. Walau bagaimanapun, perlu diingatkan bahawa apabila memanggil fungsi JavaScript, anda mesti memastikan halaman telah dimuatkan, jika tidak, ia boleh menyebabkan beberapa masalah. Pada masa yang sama, kaedah ini hanya terpakai pada kod JavaScript yang dijalankan dalam penyemak imbas dan tidak berkenaan dengan persekitaran seperti Node.js.

Atas ialah kandungan terperinci kaedah panggilan php dalam js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn