我正在做一些基本的Ajax的東西(而不是jQuery ..只是學習基礎知識),我有一個通用的結構設置在哪裏的HTML調用一個JavaScript函數發送數據並運行特定的PHP頁面。JavaScript可以直接調用PHP函數,還是需要單獨的php文件來調用函數?
但是如果我只是需要運行一個已經在functions.php中定義的php函數。這可能嗎?我累作出新的PHP文件中每個任務的;)
我正在做一些基本的Ajax的東西(而不是jQuery ..只是學習基礎知識),我有一個通用的結構設置在哪裏的HTML調用一個JavaScript函數發送數據並運行特定的PHP頁面。JavaScript可以直接調用PHP函數,還是需要單獨的php文件來調用函數?
但是如果我只是需要運行一個已經在functions.php中定義的php函數。這可能嗎?我累作出新的PHP文件中每個任務的;)
你可以在PHP中定義一個類來處理這樣的東西,如:
functions.php:
class MyFunctions {
function foo() {
// code here
// if you need to pass in some parameters, you can do it via jQuery and fetch the data like so (for the jQuery, see below)
if($_GET['name'] == "john") { } // do stuff
}
function bar() {
// code here
}
static function handleFn($fName) {
if(method_exists(__CLASS__, $fname)) {
echo $this->{$fname}(); die; // since AJAX, just echo the output and stop executing
}
}
}
if(!empty($_GET['f'])) {
MyFunctions::handleFn($_GET['f']);
}
然後做你的Ajax調用像這樣(假設jQuery):
$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) {
});
在PHP腳本中,每個函數都包含一個if語句,用於檢查GET變量。然後在JS中發送一個特定於調用該函數所需的GET變量。
ajax也是一個http請求,它不能直接調用php函數
好的答案。如果將來我需要類似的東西 – 2010-12-06 02:10:36