gpt4 book ai didi

php - 使用 Ajax 调用同一个文件中的 PHP 对象方法

转载 作者:行者123 更新时间:2023-11-30 13:11:45 26 4
gpt4 key购买 nike

我有一个 PHP 文件,.../datastuff.php在此页面上实例化了一个 PHP 对象。 (该类写在另一个文件中)。

public class MyClass{

//....
public function doAfterClick(){
//.....
}
}

所以在 datastuff.php 中我这样做了

$MyObject = new MyClass();
//user specific data is added to $MyObject

现在我想在用户按下 datastuff.php 上的按钮时调用 $MyObject->doAfterClick()

我认为 AJAX 是解决这类问题的通用方法。但我不确定该怎么做?如果我想调用另一个页面上编写的 PHP 函数,我可以使用 AJAX 将数据发布到该页面。但是我想留在这个页面上,因为 MyObject 需要调用该方法。

如果我 POST 回 datastuff.php,$MyObject 不会丢失吗?如果我将它设为 Singleton 或 Global,这会起作用吗?我看着这个,这是一个类似的问题,但不是我要找的: Using JQuery ajax to call a PHP file, process, but stay on same page

最佳答案

基本思路是:

# datastuff.php

// This object will be created upon each request
$MyObject = new MyClass();

$action = (array_key_exists('action', $_GET)) ? $_GET['action'] : '';
switch ($action) {
case 'do_something':
$response = $MyObject->doAfterClick();
// Output relevant feedback to the user or redirect them somewhere based on the response

// This was most likely called via AJAX, so perhaps output JSON data or
// some other means of communicating the response back to the javascript
break;

case 'do_something_else':
// etc...
break;

default:

// Present the information to the user...

break;
}

您的 $MyObject 将在每次请求时创建(即在初始页面加载时以及在单击按钮并触发 AJAX 请求之后)但它在每个请求中可能是相同的,假设它已被提供相同的数据。单击按钮后,对“datastuff.php?action=do_something”的 ajax 请求将确保调用相关方法。

虽然这样的事情可以工作,但它不是好的代码设计。我建议您花一些时间研究 MVC(模型、 View 、 Controller )模式。

关于php - 使用 Ajax 调用同一个文件中的 PHP 对象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com