[英]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.