2010-12-06 2 views
2

나는 기본적인 Ajax 항목 (jquery ..가 아니라 기본을 배우는 중)을 수행하고 있으며 html이 데이터를 보내고 특정 PHP 페이지를 실행하는 javascript 함수를 호출하는 일반 구조를 설정했다.JavaScript가 PHP 함수를 직접 호출 할 수 있습니까? 아니면 함수를 호출하기 위해 별도의 PHP 파일이 필요합니까?

하지만 function.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']); 
} 

은 다음과 같이 당신의 아약스 호출을 수행

답변

10

당신은 같은, 같은 물건을 처리하기 위해 PHP에서 클래스를 정의 할 수 있습니다) 나는 모든 작업에 대한 새로운 PHP 파일을 만드는 피곤 해요 jQuery로 가정) :

$.get("/functions.php?f=func_name_to_call", {name: "John", hobby: "Programming"}, function(data) { 
}); 
+0

멋진 답변입니다. 미래에 내가 비슷한 것을 필요로한다면 나는이 페이지를 북마크로 남길 것이다. –

+1

나는 AJAX를 제안하려고했다. +1 – Moshe

2

PHP 스크립트에서 GET 변수를 확인하도록 설계된 if 문으로 각 함수를 둘러 쌉니다. 그런 다음 JS에서 해당 함수를 호출하는 데 필요한 GET 변수를 보냅니다.

0

아약스도 http 요청입니다. php 함수를 직접 호출 할 수 없습니다.