我正在尝试学习如何在php中使用oop.我对jquery也很新.是否可以向php类方法发出Ajax请求?我只是将Ajax请求发送到专门用于此目的的文件,并返回我需要的数据.
简答:不.
答案很长:
Ajax只是一个术语,用于在不离开页面的情况下使用JavaScript从浏览器发出HTTP请求.
您可以"呼叫"的唯一内容是URL.
您可以根据URL的内容编写PHP来执行某些操作.
<?php
if ($_POST['action'] == "delete") {
delete();
}
?>
Run Code Online (Sandbox Code Playgroud)
基本答案是否定的,但是可以轻松完成。
ajax 调用本身不能调用类方法。它无法启动类然后调用方法。它只能通过 X url 上的 POST/GET 调用使 PHP 文件在服务器上运行。
您可以做的是使用另一个文件作为 ajax 到该方法的中间人。换句话说,您可以调用一个使用 GET/ 的中间文件(无论您喜欢什么名称,ajax 服务器、ajax 路由器等),而不是像简单示例所示直接调用 php 文件(例如 update.php)。您发送的 POST 参数是为了确定要使用的方法以及要传递给它的值。然后,您可以从该文件运行该方法(启动该类并使用参数调用该方法),并将该方法的结果从该文件返回到 ajax 调用脚本。
小智 5
是的!所有“否”的答案都不够明确。您可以这样做:
$.post("processAction.php", { name: value }, myFunction);
Run Code Online (Sandbox Code Playgroud)
然后 processAction.php 将检查您的类并运行它的函数。
require("myClass.class.php");
session_start();
if (!isset($_SESSION['myClass'])){
$_SESSION['myClass'] = new myClass();
}
$class = $_SESSION['myClass'];
$data = $_POST['name'];
//run function
$class->functionName($data);
Run Code Online (Sandbox Code Playgroud)
这只是一个基本示例,可能有错误,但希望您能了解总体思路。它不是直接的,但它确实可以让你继续上课。