程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 用Xajax做的一個無刷新PHP二級聯動

用Xajax做的一個無刷新PHP二級聯動

編輯:PHP綜合

數據庫中有兩張表:大分類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(); 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved