首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery和Ajax面向对象

问jQuery和Ajax面向对象
EN

Stack Overflow用户
提问于 2010-03-31 02:45:03
回答 2查看 1.7K关注 0票数 2

我是一个相当有经验的程序员,第一次接触PHP和Ajax,我在弄清楚如何将面向对象的PHP整合到我的ajax bit应用程序中时遇到了一些麻烦。

我有一个管理页面(admin.php),将加载和写入信息(info.xml)从XML文件取决于用户在管理页面上的表单选择。我决定使用一个对象(ContentManager.php)来管理XML文件到磁盘的加载和写入,即:

代码语言:javascript
复制
class ContentManager{

 var $xml_attribute_1
 ...

 function __construct(){
    //load the xml file from disk and save its contents into variables
    $xml_attribute = simplexml_load_file(/path/to/xml)
 }
 function get_xml_contents(){
    return xml_attribute;
 }
 function write_xml($contents_{
 }
 function print_xml(){
 }    
}

我在admin.php中创建ContentManager对象,如下所示

代码语言:javascript
复制
<?php
include '../includes/CompetitionManager.php';
$cm = new CompetitionManager()
?>
<script>
  ...all my jquery
</script>
<html>
  ... all my form elements
</html>

因此,现在我想使用AJAX来允许用户使用如下所示的接口(ajax_handler.php)通过ContentManger应用程序从XML文件检索信息

代码语言:javascript
复制
<?php
  if(_POST[]=="get_a"){

  }else if()
  }
  ...
 ?>

我知道如果我不使用对象,这将如何工作,即处理程序php文件将根据.post请求中的变量执行特定的操作,但在我的设置中,我看不到如何在ajax_handler.php文件中获得对我在admin.php中创建的ContentManager对象的引用?也许我对php对象作用域的理解是有缺陷的。

无论如何,如果有人能理解我正在做的事情,我将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2010-03-31 02:48:09

可以将每个ajax调用看作一个单独的请求。如果在特定请求的生命周期中没有实例化ContentManager,则该对象不存在。如果您希望在多个请求之间使用单个对象,请在请求生命周期的早期将其序列化到会话并反序列化。

票数 1
EN

Stack Overflow用户

发布于 2010-03-31 03:00:38

我不知道这是不是你需要的,好吧,开始吧。有一个单独的PHP文件来处理所有的表单提交。例如: proc.php或类似于ACTION=中的“proc.php”。在proc.php内部,根据提交的参数进行函数调用。您应该做的另一件事是在类文件本身的末尾创建类(对象)的实例,避免每次都需要检查对象是否已实例化。如有必要,请在调用对象函数之前使用global $objectname。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2547750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档