2013-02-28 83 views
1

;-)我碰到了一堵磚牆。今天我一生中第一次見到了阿賈克斯。而且我明白,我的問題看起來很愚蠢。但我需要你的幫助。來自php的AJAX加載函數

我有一個php文件(例如index.php),它有一個include(function.php)。在文件function.php我有一個功能(例如function Jokes(){....})。

我想使用AJAX在我的頁面中加載此功能。但我不知道如何做到這一點... :-(

我已經找到了一些簡單的解決方案(我使用jquery加載函數),但它不是我想要的,因爲我必須使用單獨的文件。

$('#jokes').load('jokes.php'); 

但我需要這樣的東西:

$('#jokes').load('function.php','jokes()'); 

任何幫助或想法可以理解的

PS:對不起,我英文不好...))

回答

2

你可以做的是製作一個AJAX文件,例如, ajaxfunctions.php在這裏你劃分的功能。

$('#jokes').load("ajax.php", { 'function': 'jokes' }); 

在你的PHP文件ajax.php,你可以這樣做:

<?php 
include 'function.php'; 
if (isset ($_POST['function']) && $_POST['function'] == 'jokes') 
{ 
    echo jokes(); 
} 
?> 

這是否幫助你嗎?

+0

Yahoo !!!你是天才,那就是我想要的。真棒!非常感謝! – Jerome 2013-02-28 14:21:30

0

瀏覽器(以及Ajax)只能向服務器發送HTTP請求。

它不能執行特定的功能。

你會寫會識別特定的URL(例如,一個腳本,只有調用該函數,或者說決定一個腳本功能基礎上,查詢字符串來運行)的服務器端代碼,並在執行特定功能迴應對它的請求。

0

不,這是不可能的。您必須向網址發送請求。你不能只從一個PHP文件調用特定的功能。

爲您需要的功能構建一個url包裝。

0

不要這樣做。 Ajax用於發送或檢索數據,但您要做的是加載PHP文件中定義的Javascript函數(不是嗎?)。 相反,只是定義你的Javascript功能的JS文件,並通過腳本加載它(或者,如果它要動態加載,您可以使用AMD裝載機像require.js)如果你想加載一個PHP

JS中的函數,那麼這是不可能的。不過,您可以調用該函數並獲取其結果。

0

它不這樣工作。

$('#jokes').load('jokes.php'); 

向jokes.php發出http請求。如果要執行特定的功能,你可以用一個參數,像這樣:

$('#jokes').load('jokes.php?func=jokes'); 

從你的PHP腳本,得到「功能」,並執行適當的功能。

... 
function jokes() { 
    return 'some output'; 
} 

... 
$func=''; 
if (!empty($_REQUEST['func'])) { 
    $func=$_REQUEST['func']; 
} 

if ($func=='jokes') { 
    echo jokes(); 
} 
0

你不需要AJAX這一點。你想把Jokes()函數放在一個JavaScript文件中,也許稱爲Jokes.js,將它包含在index.php中,然後在index.php的JavaScript塊中正常調用它。

+0

'函數Jokes'幾乎可以肯定是一個PHP **函數,而不是JavaScript函數。 – Quentin 2013-02-28 14:07:44

+0

從語法上講,它可能是一個JavaScript函數,雖然公平,但不清楚。 – 2013-02-28 14:09:06