2016-12-05 78 views
0

我盡了最大努力找到答案,但仍然陷入困境。初學者在PHP這裏。 我知道我可以使用xmlhttprequest或ajax從我的js代碼中調用我的php文件。如何使用JS運行PHP文件中的特定功能

假設我在我的php文件中有各種類和函數,我想用我的js代碼運行「nameColor」函數。

public function nameColor($playerlvl, $monsterlvl) { 
     if ($playerlvl === $monsterlvl) { 
     $this->colorToPlayer = "white"; 
     } else if ($playerlvl < $monsterlvl) { 
     $this->colorToPlayer = "red"; 
     } else if ($playerlvl > $monsterlvl) { 
     $this->colorToPlayer = "blue"; 
     } 
    } 

所以我需要爲我的函數設置attributs並運行它來獲得結果。我該如何在js中繼續?

我的js代碼只是(叫我的PHP文件,並附加了一些數據,以html頁面):

<script> 
function getInfoPHP() { 
    $.ajax({ 
     url:"l2charcreation.php", //the page containing php script 
     type: "GET", 
     success:function(result){ 
     $('.newCharacterInfo').append(result); 
    } 
    }); 
} 

</script> 
+0

向我們展示您的JS代碼到目前爲止 – Peon

+0

AJAX是繼續進行的方式。 –

+0

添加我的小js,我使用ajax調用php文件,但無法弄清楚如何運行我選擇的函數與選擇屬性... – Genia

回答

0

您可以像這樣你的Ajax數據添加:

function getInfoPHP() { 
    $.ajax({ 
     url:"l2charcreation.php", //the page containing php script 
     type: "GET", 
     data: {func: 'getColor', attr1: '5', attr2: '4'}, 
     success:function(result){ 
     $('.newCharacterInfo').append(result); 
    } 
    }); 
} 

,然後在l2charcreation.php您必須根據$_GET['func']的值在您的功能之間切換,併爲它們提供來自$_GET['attr1']等的屬性。之後,你需要在PHP中回顯結果,你會在你的js中收到它。簡單的例子:

function foo($a1) { 
    echo 'processed foo'.$a1; 
} 

function bar() { 
    echo 'processed bar'; 
} 

switch($_GET['func']) { 
case 'foo': 
    foo($_GET['attr1']); 
    break; 
case 'bar': 
    bar(); 
    break; 
default : 
    echo 'function not found'; 
} 

的總體思路是這樣的: 比方說,你只有兩個文件:

  • index.html(含一個你的JS)
  • l2charcreation.php(一用很多php的功能)

和喲你想要訪問由js在index.html中的l2charcreation.php的特定php函數生成的數據。 因此,您在js中使用ajax函數 - 它在後臺連接到服務器,並請求函數名稱l2charcreation.php,並指定參數(在GET或POST中)。服務器響應類似於它將如何響應瀏覽器訪問此文件,所以如果你想傳遞一些數據給js index.html你需要在l2charcreation.php中回顯它。

+0

我不明白,「你必須切換你的功能之間的基礎在$ _GET ['func']的值上併爲它們提供$ _GET ['attr1']等屬性「。你可以用代碼顯示嗎?非常感謝。 – Genia

+0

當我嘗試在OOP中執行此操作時,是否設想當我的函數在類中時工作?我不應該在調用函數之前啓動一個新的對象,因爲我會在PHP中完成該操作嗎?如何做? – Genia

+0

我編輯了答案。如果你的php是面向對象的,那麼它無關緊要,你必須以任何方式迴應你的數據。 –

相關問題