2012-04-15 82 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你需要的帽子,而是一种资源来帮助你实现你所要求的东西。

相关问题