2011-04-07 236 views
8

可能重複:
Call PHP function from jQuery?從jquery調用php函數?

jQuery的按鈕點擊調用PHP函數

$('.refresh').click(
    function(){ 
     <?php hello(); ?> 

    } 
) 

PHP代碼

<?php 
function hello() 
{ 
echo "bye bye" 
} 
?> 

我想從jquery的按鈕上調用一個php函數,我該怎麼做?

+2

的可能的複製[從jQuery調用PHP函數?](http://stackoverflow.com/questions/3548802/call-php-function-from-jquery)和其他一千個(請參閱這個問題中的* Related * sidebar)。你首先需要解決你對客戶端和服務器端腳本的誤解。 – deceze 2011-04-07 09:32:20

+0

做一個ajax請求到一個php文件並處理輸出的php文件生成 – ITroubs 2011-04-07 09:32:43

+0

@RobertPitt這不是不可能;-) <?php $ funcName = $ _REQUEST ['f']; $$了funcName($ _ REQUEST [ '參數']); ?> – ITroubs 2011-04-07 09:34:26

回答

22

從jQuery中你只能用這個函數調用php腳本。這樣的:

$.ajax({ 
    url: 'hello.php', 
    success: function (response) {//response is value returned from php (for your example it's "bye bye" 
    alert(response); 
    } 
}); 

hello.php

<?php 
    echo "bye bye" 
?> 
0

php是服務器端語言,JS - 客戶端...我認爲你應該使用AJAX。或者你的php函數應該返回有效的javascript代碼

1

PHP是在服務器上執行的東西,客戶端(瀏覽器)有任何正在執行的PHP代碼的直接訪問。這非常好,因爲否則每個人都可以訪問所有文件和整個mysql數據庫。

你可以結合PHP和JavaScript(jQuery)與AJAX或像xajax這樣的庫。

8

您的JS

$('.refresh').click(
    function(){ 
     $.ajax({ 
      url: "ajax.php&f=hello", 
      type: "GET" 
      success: function(data){ 
       //Do something here with the "data" 
      } 
     }); 

    } 
) 

您ajax.php

<?php 

$validFunctions = array("hello","anotherF"); 

$functName = $_REQUEST['f']; 
if(in_array($functName,$validFunctions)) 
{ 
    $$functName(); 
}else{ 
    echo "You don't have permission to call that function so back off!"; 
    exit(); 
} 

function hello() 
{ 
    echo "bye bye"; 
} 

function anotherF() 
{ 
    echo "the other funct"; 
} 

function noTouch() 
{ 
    echo "can't touch this!"; 
} 
?> 

這是通過AJAX的PHP方法非常基本的和非常醜陋RMI類型的調用一個小例子

+0

+1你的整潔的代碼 – 2013-03-03 05:32:56