Ini mungkin jawaban yang sederhana, tapi saya menggunakan $ .ajax jQuery untuk memanggil skrip PHP. Apa yang ingin saya lakukan pada dasarnya adalah meletakkan skrip PHP itu di dalam suatu fungsi dan memanggil fungsi PHP dari javascript.
<?php
if(isset($_POST['something'] {
//do something
}
?>
untuk ini
<?php
function test() {
if(isset($_POST['something'] {
//do something.
}
}
?>
Bagaimana saya memanggil fungsi itu di javascript? Saat ini saya hanya menggunakan $ .ajax dengan file PHP terdaftar.
Jawaban:
Gunakan
$.ajax
untuk memanggil konteks server (atau URL, atau apa pun) untuk meminta 'tindakan' tertentu. Yang Anda inginkan adalah seperti:Di sisi server,
action
parameter POST harus dibaca dan nilai yang sesuai harus mengarah ke metode yang akan dipanggil, misalnya:Saya percaya itu adalah inkarnasi sederhana dari pola Command .
sumber
Saya mengembangkan plugin jQuery yang memungkinkan Anda memanggil fungsi inti PHP apa pun atau bahkan fungsi PHP yang ditentukan pengguna sebagai metode plugin: jquery.php
Setelah memasukkan jquery dan jquery.php di kepala dokumen kita dan menempatkan request_handler.php di server kita, kita akan mulai menggunakan plugin dengan cara yang dijelaskan di bawah ini.
Untuk kemudahan penggunaan, rujuk fungsi dengan cara yang sederhana:
Kemudian inisialisasi plugin:
Dan sekarang beberapa skenario penggunaan:
Mendemonstrasikan rangkaian fungsi PHP:
Mendemonstrasikan pengiriman blok JSON pseudo-code PHP:
Konfigurasi backend menyediakan daftar putih sehingga Anda dapat membatasi fungsi mana yang dapat dipanggil. Ada beberapa pola lain untuk bekerja dengan PHP yang dijelaskan oleh plugin juga.
sumber
Saya akan tetap menggunakan pendekatan normal untuk memanggil file secara langsung, tetapi jika Anda benar-benar ingin memanggil suatu fungsi, lihat JSON-RPC (JSON Remote Procedure Call).
Anda pada dasarnya mengirim string JSON dalam format tertentu ke server, mis
yang mencakup fungsi untuk memanggil dan parameter dari fungsi itu.
Tentu saja server harus tahu bagaimana menangani permintaan seperti itu.
Berikut adalah plugin jQuery untuk JSON-RPC dan misalnya Zend JSON Server sebagai implementasi server di PHP.
Ini mungkin berlebihan untuk proyek kecil atau kurang fungsi. Cara termudah adalah jawaban karim . Di sisi lain, JSON-RPC adalah standar.
sumber
Anda tidak dapat memanggil fungsi PHP dengan Javascript, dengan cara yang sama Anda tidak dapat memanggil fungsi PHP arbitrer saat Anda memuat halaman (pikirkan implikasi keamanannya).
Jika Anda perlu membungkus kode Anda dalam suatu fungsi karena alasan apa pun, mengapa Anda tidak meletakkan panggilan fungsi di bawah definisi fungsi, misalnya:
Atau, gunakan PHP termasuk:
sumber
Anda harus mengekspos dan endpoint (URL) di sistem Anda yang akan menerima permintaan POST dari panggilan ajax di jQuery.
Kemudian, saat memproses url itu dari PHP, Anda akan memanggil fungsi Anda dan mengembalikan hasilnya dalam format yang sesuai (kemungkinan besar JSON, atau XML jika Anda mau).
sumber
Anda dapat menggunakan perpustakaan saya yang melakukannya secara otomatis, saya telah memperbaikinya selama 2 tahun terakhir http://phery-php-ajax.net
Javascript akan sesederhana
Anda dapat meneruskan semua bagian javascript dinamis ke server, dengan pembuat kueri seperti antarmuka yang dapat dirantai, dan Anda dapat meneruskan semua jenis data kembali ke PHP. Misalnya, beberapa fungsi yang akan memakan terlalu banyak ruang di sisi javascript, dapat dipanggil di server menggunakan ini (dalam contoh ini, mcrypt, yang di javascript hampir tidak mungkin dilakukan):
dan di server
Sekarang
variable
akan memiliki data terenkripsi.sumber