我从 php 中的面向对象编程开始。
我想做记录 - 使用 ajax 和 jquery。
编辑:我可以从文件 jquery.php 调用函数 ajax - 使用 jquery AJAX 吗?
//FILE jquery.php
class jquery {
public function ajax() {
echo "result";
}
}
如果您进行类似于此的 ajax 调用:
http://example.com/ajax.php?firstParam=1
在您的ajax.php
文件中,您可以执行以下操作:
switch($_GET['firstParam']){
case "1":
callYourFunction();
break;
case "2":
someOtherFunction();
break;
}
这是一个非常精简的例子......在现实世界的情况下,您必须考虑安全性并清理您从服务器外部(即来自用户)获得的任何信息。
我给出的名称只是占位符 - 您可以将函数/变量名称更改为您觉得舒服的任何名称。
我希望这能对你的难题有所启发。
不确定您是否完全理解 AJAX 是什么,但它是 Asynchronous JavaScript 和 XML 的首字母缩写。使用 Ajax,Web 应用程序可以异步(在后台)向服务器发送数据和从服务器检索数据,而不会干扰现有页面的显示和行为。而已。
我相信这就是您正在寻找的(尽管它不是 OOP,但我没有编写整个 OOP 登录来尝试回答您的问题)
文件: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>
另外,请记住此代码未经测试并将其编写为对此的回复,因此不要将其视为您想要的解决方案,而是帮助您实现您的目标的资源要求。
您不能直接调用类 - 但您可以获取执行结果。
这里有一个例子,你可以如何几乎直接地调用它——但不要将它用于关键的登录代码。
<?php
$ftcn = $_GET['getname'];
$bc = new ReallyBadCode();
$bc->$ftcn();
class ReallyBadCode{
function test(){
}
function __call($name, $args){
$this->$name($args);
}
}