2012-04-15 98 views
-4

我在php中開始了一個面向對象的編程。我可以使用jquery ajax從php類調用函數嗎?

我想做日誌 - 使用ajax和jquery。

編輯:我可以從jquery.php文件調用函數ajax - 使用jQuery AJAX嗎?

//FILE jquery.php 

class jquery { 

    public function ajax() { 

    echo "result";  

    } 
} 
+0

你不能用AJAX調用PHP類 - 但你可以得到執行的結果。 對於AJAX部分,編程範例是無關緊要的。 – NaN 2012-04-15 11:23:51

+0

我想在php中有一個類。來自班級的呼叫功能。這可能嗎? – Jenan 2012-04-15 11:26:17

+0

是的,您可以完成這項工作,但是我建議您在實施任何關鍵代碼之前先學習關於Ajax和PHP的基礎知識。 – 2012-04-15 11:32:33

回答

1

如果你做類似這樣的Ajax調用:

http://example.com/ajax.php?firstParam=1

在您ajax.php文件,你可以做這樣的事情:

switch($_GET['firstParam']){ 
case "1": 
    callYourFunction(); 
break; 
case "2": 
    someOtherFunction(); 
break; 
} 

這是一個非常剝離的例子...在現實世界的情況下,你將不得不採取秒保證您的服務器之外的任何信息的真實性(例如,來自用戶)。

我給出的名稱只是佔位符 - 您可以將函數/變量名稱更改爲任何您感覺舒適的名稱。

我希望這可以解釋您的難題。

1

您不能直接調用類 - 但可以獲取執行結果。

這裏有一個例子,你可以怎麼稱呼它直接 - 但不使用這個關鍵的登錄代碼。

<?php 
$ftcn = $_GET['getname']; 
$bc = new ReallyBadCode(); 
$bc->$ftcn(); 

class ReallyBadCode{ 
    function test(){ 
    } 

    function __call($name, $args){ 
     $this->$name($args); 
    } 

} 
1

不確定您是否完全理解AJAX是什麼,但它是Asynchronous JavaScript和XML的首字母縮寫詞。使用Ajax,Web應用程序可以異步地(在後臺)向服務器發送數據和從服務器檢索數據,而不會干擾現有頁面的顯示和行爲。而已。

我相信這是你在找什麼(儘管它不是面向對象的,但我不是寫一個完整的面向對象的登錄嘗試回答你的問題)

文件:login.php

<?php 
    $db = new PDO("mysql:host=localhost;dbname=database", SQL_USER, SQL_PASS); 

    $stmt = $db->prepare('SELECT user_id, user_activated FROM users WHERE (username = AND user_password = ? LIMIT 1'); 
    $stmt->execute(array($_POST['u'], $_POST['p'])); 

    if($stmt->rowCount() == 1) 
    { 
    // Authentication session storage stuff here 
    echo 'Logged in'; 
    } 
    else 
    { 
    echo 'bad login'; 
    } 
?> 

所以你可以有一個HTML頁面的東西,如:

<div id="results"></div> 

<input type="text" id="txtUsername" /> <br /> 
<input type="password" id="txtPassword" /><br /> 
<button id="cmdLogin">Login</button> 

<script> 
    $(document).ready(function(){ 
    $("#cmdLogin").click(function(){ 
     $u = $("#txtUsername").val(); 
     $p = $("#txtPassword").val(); 

     $.ajax({ 
       type: "POST", 
       url: "http://yoursite.com/login.php", 
       data: "u="+u+"&p="+p 
      }).done(function(results) { 
        $("#results").html(results).hide().fadeIn(); 
      }); 
    }); 
    }); 
</script> 

而且,記住這個代碼是未進行測試和書面它作爲回答這個,所以不要把這個作爲一種解決方案爲w你需要的帽子,而是一種資源來幫助你實現你所要求的東西。

相關問題