數據庫中有兩張表:大分類BigType表和小分類SmallType表.
BigType表中的字段為: ID,BigName;
SmallType表中的字段為:SmallID,BigID,SmallName;
思路:(主要就是依葫蘆畫瓢,照官方的實例整的)先讀一次大分類表,取得大分類,當每次選擇大分類時,將所選擇的大分類ID提交給服務器端,通過該ID查得相應的小分類值,將查詢值返回,插入相應的位置(注:由於對Xajax往客戶端頁面插入Javascript部分不熟練,在此我直接把小分類查得的值在服務器端就整理為要輸出的select列表菜單,所以感覺有點怪,不是很純正的感覺^_^,不過已經滿足我的需要了,就沒繼續調,將來如果有機會將加以改進)
包含三個文件結構:
xajaxserver.php
xajaxcommon.php
chose.php
代碼參考如下:
xajaxcommon.php頁的代碼
view plaincopy to clipboardprint?
//包含xajax的函數庫文件
require_once ("./xajax/xajax_core/xajax.inc.php");
//創建一個xajax對象
$xajax = new xajax("xajaxserver.php");
//注冊你想要通過xajax調用的函數,該函數通過大分類ID來取得小分類。
$xajax->registerFunction("GetSmallType");
//包含xajax的函數庫文件
require_once ("./xajax/xajax_core/xajax.inc.php");
//創建一個xajax對象
$xajax = new xajax("xajaxserver.php");
//注冊你想要通過xajax調用的函數,該函數通過大分類ID來取得小分類。
$xajax->registerFunction("GetSmallType");
xajaxserver.php頁的代碼
view plaincopy to clipboardprint?
//輸出中文,設置GB2312
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'GB2312' );
//包含公用文件
require("xajaxcommon.php");
//通過BigID查詢小分類的函數,並通過xajaxResponse對象返回XML命令:
function GetSmallType($BigID)
{
$objResponse = new xajaxResponse();
/*
*連接你的數據庫,並通過$BigID來查詢小分類的值,該部分代碼略過
*查得的小分類的結果存放在二維數組$SmallTypeResult中
*/
//開始構造Select列表菜單
$j=0;
while(!emptyempty($SmallTypeResult[$j]))
{
$Temp.="<option value='".$SmallTypeResult[$j][ID]."'>".
$SmallTypeResult[$j][SmallName]."</option>";
$j++;
}
$str ="<select name='smalltype' id='smalltype'>
<option value='0'>[選擇小分類]</option>";
$str.=$Temp;
$str.="</select>";
//將列表菜單顯示在請求頁面的id為mdjingdiv的層中
$objResponse->assign("mdjingdiv","innerHTML",$str);
return $objResponse;
;
}
//在程序輸出之前,由xajax處理請求
$xajax->processRequest();
//輸出中文,設置GB2312
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'GB2312' );
//包含公用文件
require("xajaxcommon.php");
//通過BigID查詢小分類的函數,並通過xajaxResponse對象返回XML命令:
function GetSmallType($BigID)
{
$objResponse = new xajaxResponse();
/*
*連接你的數據庫,並通過$BigID來查詢小分類的值,該部分代碼略過
*查得的小分類的結果存放在二維數組$SmallTypeResult中
*/
//開始構造Select列表菜單
$j=0;
while(!empty($SmallTypeResult[$j]))
{
$Temp.="<option value='".$SmallTypeResult[$j][ID]."'>".
$SmallTypeResult[$j][SmallName]."</option>";
$j++;
}
$str ="<select name='smalltype' id='smalltype'>
<option value='0'>[選擇小分類]</option>";
$str.=$Temp;
$str.="</select>";
//將列表菜單顯示在請求頁面的id為mdjingdiv的層中
$objResponse->assign("mdjingdiv","innerHTML",$str);
return $objResponse;
;
}
//在程序輸出之前,由xajax處理請求
$xajax->processRequest();