2014-09-10 31 views
0

嗨我有一種情況一定PHP函數,

我想使用AJAX $不用彷徨方式來指定在一個單獨的PHP文件用特定的PHP函數。我對語法不太確定。

JavaScript的

function all(){ 

    $.get({ 
    url: "functions.php THEN GET A CERTAIN FUNCTION ", 
    success: function success(data){ paint(data) }, 
    dataType: "html" 
    }); 


}); 

function.php

<?php 

function helloWorld(){ 

echo "Hello World"; 

}; 

    function helloMars(){ 

echo "Hello Mars"; 

}; 

任何幫助,不勝感激

+0

你需要做的是以某種方式表明你想觸發某個功能。可能在查詢中。然後使用一些邏輯:'if/else'或'switch'並檢測是否設置了觸發器。如果是,請致電您的功能。 – Crackertastic 2014-09-10 17:28:25

+0

url:「functions.php?fname = helloWorld」, – 2014-09-10 17:28:45

回答

1

傳遞一個變量在data屬性或URL查詢字符串,並在你的PHP腳本,選擇基於該變量的函數。

$.get({ 
    url: "functions.php", 
    data: { "vname": "something" }, 
    success: function success(data){ paint(data) }, 
    dataType: "html" 
}); 

http://api.jquery.com/jquery.get/

PHP:

if ($_GET["vname"] == "something") { 
    helloWorld(); 
} else { 
    helloMars(); 
} 

http://php.net/manual/en/reserved.variables.get.php

+0

如果vname是函數的名稱,則不必使用if/else。 $ VNAME = $ _ GET [ 'VNAME']; $ VNAME(); – 2014-09-10 17:32:48

+2

這看起來像是一個潛在的安全漏洞給我。如果他們猜出正確的名字,有人可能會執行一個你不想執行的函數。 – Blazemonger 2014-09-10 17:36:24

+0

因爲我們不知道這是否與直接用戶輸入有關,所以我們不能肯定地說。我認爲值得注意的是函數可以用變量調用。同樣在你的代碼中,如果「猜測」的人只是猜測helloMars將始終執行的任何事情。我認爲這並不理想。 – 2014-09-10 17:40:18

0

願這幫助你

$.get("test-ajax.php",function(data,status){ 

    $(".content").html(data); 

}); 

「測試ajax.php」 文件

function helloWorld()

{ echo "hello world"; }

function helloMars() {

echo "Hello Mars";

}

helloWorld(); helloMars();