簡體   English   中英

PHP、jQuery 和 Ajax 面向對象

[英]PHP, jQuery and Ajax Object Orientation

我是一名相當有經驗的程序員,第一次接觸 PHP 和 Ajax,但在弄清楚如何將面向對象的 PHP 合並到我的 ajax web 應用程序中時遇到了一些麻煩。

我有一個管理頁面 (admin.php),它將根據用戶在管理頁面上選擇的表單從 XML 文件加載和寫入信息 (info.xml)。 我決定使用一個對象 (ContentManager.php) 來管理 XML 文件到磁盤的加載和寫入,即:

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 對象

<?php
include '../includes/CompetitionManager.php';
$cm = new CompetitionManager()
?>
<script>
  ...all my jquery
</script>
<html>
  ... all my form elements
</html>

所以現在我想使用 AJAX 來允許用戶通過 ContentManger 應用程序使用這樣的接口 (ajax_handler.php) 從 XML 文件中檢索信息

<?php
  if(_POST[]=="get_a"){

  }else if()
  }
  ...
 ?>

我理解如果我不使用對象,這將如何工作,即hander php 文件將根據 .post 請求中的變量執行特定操作,但是通過我的設置,我看不到如何獲得參考到我在 admin.php 中的 ajax_handler.php 文件中創建的 ContentManager 對象? 也許我對 php 對象范圍的理解是有缺陷的。

無論如何,如果有人能理解我正在嘗試做的事情,我將不勝感激!

將每個 ajax 調用視為一個單獨的請求。 如果在特定請求的生命周期中您還沒有實例化您的 ContentManager,則該對象不存在。 如果您想在多個請求之間使用單個對象,請將其序列化為 session 並在請求生命周期的早期將其反序列化。

我不知道這是否是你需要的,好吧,這里是。 有一個 PHP 文件來處理所有的表單提交。 例如:proc.php 或 ACTION="proc.php" 中的類似內容。 在 proc.php 中,根據提交的參數,進行函數調用。 您可能應該做的另一件事是在類文件本身的末尾創建類(對象)的實例,從而避免每次都檢查對象是否已實例化。 如有必要,請在調用對象函數之前使用global $objectname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM