用Xajax做的一個無重新整理PHP二級聯動

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.