AjaxʵÏÖ²éѯÖúÊÖ£¨Query Helper£©·¢±íÈÕÆÚ:2007-8-31

¿ª·¢ÕßÔÚÏß Builder.com.cn ¸üÐÂʱ¼ä:2008-03-29×÷ÕߣºÀî¿¡½Ü À´Ô´:CSDN

±¾ÎĹؼü´Ê£º ÖúÊÖ ²éѯ AJAX Web¿ª·¢

AjaxʵÏÖ²éѯÖúÊÖ£¨Query Helper£©

1       ¸ÅÊö

1.1    ²éѯÖúÊÖ¹¦ÄܽéÉÜ

ÔÚͨ³£µÄBSÈí¼þÏîÄ¿ÖУ¬²éѯÖúÊÖʹÓÃÆµÂʷdz£¸ß£¬Æä¹¦ÄÜÊǵã»÷ͼ±ê£¬Ò³ÃæÉÏÔªËØµÄֵΪÌõ¼þ£¬µ½ºǫ́²éѯ½á¹û£¬µ¯³ö²éѯ½á¹û¶Ô»°¿ò£¬Ñ¡Ôñ¼Í¼£¬¹Ø±Õ¶Ô»°¿ò£¬²¢ÇÒ°ÑÄãÑ¡ÔñµÄÓйØÄÚÈÝÏÔʾµ½¸¸Ò³ÃæÖÐÖ¸¶¨µÄÔªËØÖС£ÓÉÓÚÆäÓѺõĽçÃæÉè¼ÆºÍ²Ù×÷ÐÔÄÜ£¬¶ÔÓû§ºÍÉè¼Æ¿ª·¢ÈËÔ±¶¼ÓкܴóµÄÎüÒýÁ¦£¬µ«´æÔÚ¿ª·¢Ð§Âʵͣ¬¸´ÓÃÐԲ¸´ÔӶȽϸߵÈÎÊÌâ¡£

1.2    AjaxÏÖ×´ºÍÏîĿʵ¼ù

Ëæ×ÅAjaxµÄ·çÃÒÈ«Çò£¬GoogleµÄÍÆ²¨ÖúÀ½£¬ÓÅÐãµÄ½çÃæ·ç¸ñ£¬¾Ö²¿Ë¢ÐµÄȫиÐÊÜ£¬¸øÈ˶úĿһеÄÓ¡Ïó¡£µ«ÓÉÓÚAjaxÖî¶àjavascript½Å±¾ºÍºǫ́ӦÓõĸ´ÔÓÐÔ£¬Ê¹ajaxµÄÍÆ¹ãÀ§ÄÑÖØÖØ£¬¹úÄÚµÄÓ¦Óôó¶à¶¼ÊÇÍæ¾ß¼¶£¬¾àÏîĿʵÓû¹Óв»Ð¡µÄ²î¾à£¬°üÀ¨Microsoft£¬IBM£¬SUN¶¼ÔÚ»ý¼«¹¥¹ØÑз¢£¬ÒÔÌá¸ßÏîÄ¿¿ª·¢µÄʵÓÃÐÔ£¬½µµÍ¿ª·¢ÄѶȡ£ÎªÁËʹÓÃajaxÔÚÏîÄ¿µÄʵÓÃÐÔ£¬Õë¶Ô²éѯÖúÊÖ¹¦ÄܵÄAjax×öÁËһЩÓÐÒæµÄ³¢ÊÔ£¬ÌرðÔ¸ÒâºÍ´ó¼Ò·ÖÏí¡£

1.3    Ajax¼ò½é

ÍøÉϹØÓÚAjaxµÄÎÄÕº¹Å£³ä¶°£¬¾ßÌåµÄAjaxÀíÂÛ¿ÉÒÔµ½ÍøÉÏËÑË÷£¬Õâ¶ùÖ»×ö¼òµ¥½éÉÜ£º

AjaxÊÇAsynchronous JavaScript and XMLµÄËõд¡£Ajax²¢²»ÊÇÒ»ÃÅеÄÓïÑÔ»ò¼¼Êõ,Ëüʵ¼ÊÉÏÊǼ¸Ïî¼¼Êõ°´Ò»¶¨µÄ·½Ê½×éºÏÔÚÒ»ÔÚͬ¹²µÄЭ×÷Öз¢»Ó¸÷×ÔµÄ×÷Óã¬Ëü°üÀ¨£º

Ø         ʹÓÃXHTMLºÍCSS±ê×¼»¯³ÊÏÖ

Ø         ʹÓÃDOMʵÏÖ¶¯Ì¬ÏÔʾºÍ½»»¥

Ø         ʹÓÃXMLºÍXSLT½øÐÐÊý¾Ý½»»»Óë´¦Àí

Ø         ʹÓÃXMLHttpRequest½øÐÐÒì²½Êý¾Ý¶ÁÈ¡;

Ø         ʹÓÃJavaScript°ó¶¨ºÍ´¦ÀíËùÓÐÊý¾Ý

AjaxµÄ¹¤×÷Ô­ÀíÏ൱ÓÚÔÚÓû§ºÍ·þÎñÆ÷Ö®¼ä¼ÓÁË¡ª¸öÖмä²ã,ʹÓû§²Ù×÷Óë·þÎñÆ÷ÏìÓ¦Òì²½»¯¡£²¢²»ÊÇËùÓеÄÓû§ÇëÇó¶¼Ìá½»¸ø·þÎñÆ÷,Ïñ¡ªÐ©Êý¾ÝÑéÖ¤ºÍÊý¾Ý´¦ÀíµÈ¶¼½»¸øAjaxÒýÇæ×Ô¼ºÀ´×ö,Ö»ÓÐÈ·¶¨ÐèÒª´Ó·þÎñÆ÷¶ÁÈ¡ÐÂÊý¾ÝʱÔÙÓÉAjaxÒýÇæ´úΪÏò·þÎñÆ÷Ìá½»ÇëÇó¡£

 

 

2       Ajax²éѯÖúÊÖ¹¦ÄÜÉè¼ÆÀíÄî

²éѯÖúÊÖ¹¦ÄÜÉè¼ÆµÄµÄAjaxµÄÉè¼ÆÖ÷Òª¼¯ÖÐÔÚ´Óǰ̨µÄjspÒ³ÃæÌá³öAjaxÇëÇó£¬ËùÓеÄAjaxÇëÇó¶¼Ìá½»¸ø²éѯÖúÊÖÖмä²ã£¬²éѯÖúÊÖÖмä²ã×Ô¶¯´´½¨²éѯÖúÊÖ¾ßÌåʵÏÖÀàÀ´ÊµÏÖ²éѯÖúÊֵľßÌå²éѯ¹¦ÄÜ£¬²éѯÖúÊÖ¾ßÌåʵÏÖÀàʵÏÖÊý¾Ý¿â²éѯ²¢×éÖ¯´«»ØÇ°Ì¨Êý¾ÝÎı¾¡£´«µ½Ç°Ì¨ºó×Ô¶¯Ñ¡Ôñ²»Í¬µÄJavaScriptº¯ÊýÀ´½âÎöÊý¾Ý£¬²¢ÏÔʾµ½Ò³ÃæµÄDiv»òÕßÖ±½ÓÏÔʾµ½Ò³ÃæÔªËØÖС£

2.1    AjaxʵÏÖ²éѯÖúÊÖ¹¦ÄÜʾÒâͼÈçÏ£º

3       AjaxʵÏÖÏêÊö

3.1    Jspǰ̨

ÔÚJspÖУ¬µã»÷²éѯÖúÊÖͼ±ê£¬»òÕßÔÚÊäÈë¿òÖдò»Ø³µ¼ü£¬ÔòÏÔʾÈçͼ3-1½çÃæ£¬Ajax´Óºǫ́»ñÈ¡Êý¾ÝÏÔʾÔÚÇ°Ì¨Ò³ÃæÉÏ·½£¬µ«´ËÊ±Ò³Ãæ²¢Î´Ë¢Ð£¬²¢ÇÒȱʡµ¥Ñ¡°´Å¥Ñ¡ÖеÚÒ»ÐУ¬µÚÒ»Ðб³¾°É«ÎªÂÌÉ«¡£ÓÐÁ½ÖÖ²Ù×÷¿ÉÒÔÑ¡Ôñ£º

 

1£©  Ñ¡ÔñÊÇʹÓÃÉÏÏ·½Ïò¼üÀ´Ñ¡Ôñ¼Í¼£¬ÉÏϼüÒÆ¶¯Ê±¼Í¼±³¾°É«×Ô¶¯¸Ä±ä£¬µ¥Ñ¡°´Å¥Ò²×Ô¶¯Ñ¡Ôñ¡£µ±¾ö¶¨Ñ¡ÔñijһÐмͼʱ£¬µã»÷»Ø³µ¼ü¡£

2£©  Ñ¡ÔñʹÓÃÊó±ê£¬µ±Êó±êÒÆ¶¯Ê±£¬¼Í¼µÄ±³¾°É«·¢Éú¸Ä±ä¡£

3£©  µ±µã»÷»Ø³µ¼ü£¬»òÕßµã»÷Êó±ê×ó¼üʱÔòÏà¹ØÄÚÈÝÌî³äµ½¾ßÌåµÄÒ³ÃæÔªËØÖУ¬²¢°ÑÊäÈë½¹µã×Ô¶¯ÏÂÒÆµ½Ö¸¶¨µÄÊäÈë¿ò£¬²¢¹Ø±ÕÑ¡Ôñ½çÃæ¡£

4£©  Èç¹ûÄã²»ÏëÑ¡Ôñ£¬Ò²¿ÉÒÔÖ±½Óµã»÷Ñ¡Ôñ½çÃæÓÒÉϽǵĹرÕͼ±ê

ͼ3-1

Èç¹û²éѯ½á¹ûΪûÓмͼ£¬Ôò£º

 

ͼ3-2

¾ßÌå´úÂëÈçÏ£º

3.1.1   ÒýÈëjs£¬cssÎļþ

<link rel="stylesheet" href="<%=request.getContextPath()%>/tplife/css/maginfier.css" type="text/css">

<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax/maginfier.js"></script>

 

×éÖ¯»ú¹¹²éѯÖúÊÖ£º<br/><img src = "<%=request.getContextPath()%>/images/magifiericon.gif" onclick="orgMaginfier('<%=request.getContextPath()%>','selOrg','DivShim','orgId,orgCode,orgName','0,2,1','message','','');">

    <input type="text" id = "orgCode" style="width:300px" onkeydown="if(event.keyCode == 13){orgMaginfier('<%=request.getContextPath()%>','selOrg','DivShim','orgId,orgCode,orgName','0,2,1','message'); gnIsSelectCtrl = 1;}else{}">

    <input type="text" id = "orgName" style="width:300px">

    <input type="hidden" id = "orgId">

   

    <br/>        

      <div id="selOrg"  style="display:none; z-index:100" class="termFrame" ></div>   

       <iframe

        id="DivShim"

        src="javascript:false;"

        scrolling="no"

        frameborder="0"

        style="position:absolute; top:0px; left:0px; display:none;">

       </iframe> 

3.1.1.1       JsÎļþÄÚÈÝ£º

var xmlHttp;
var maginfierName ;
var displayName ;//ÏÔʾ½á¹ûDiv
var displayIFrame;//ÏÔʾ½á¹ûIFrame
var posNames ;//»ØÌîÒ³ÃæÔªËØÊý×飬ÈçcurrencyId,currencyAbbrName,currencyName
var valueIndexs;//»ØÌîËùÐèÖµµÄÁкţ¬Èç0,1,2
var nextPos;   //»ØÌîºófocusµÄÔªËØÃû
var serverPath;
var maginfierFunction;
var tableHead = new Array();


function createXMLHttpRequest() {
  
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
   
}
function keyDowm(obj, pos, value, maginfierName0, maginfierDisplayName, maginfierDisplayIFrame)
{
  if(event.keyCode == 13)//»Ø³µ¼ü
  {
     filled(pos, value, maginfierDisplayName, maginfierDisplayIFrame);
  }
  else if(event.keyCode == 40)//ÉÏÒÆ¼ü
  {    
    document.getElementById(maginfierName0+"divrow" + obj).bgColor=''; 
   
    var t = eval(obj) + 1;
    if(document.getElementById(maginfierName0+"divrow" + t) != null)
    {
        document.getElementById(maginfierName0+"divrow" + t).bgColor='#CCFF99';
    }   
   
  }
  else if(event.keyCode == 38)//ÏÂÒÆ¼ü
  {
    document.getElementById(maginfierName0+"divrow" + obj).bgColor='';  
    var t = eval(obj) - 1;
    if(t >= 0)
    {
       document.getElementById(maginfierName0+"divrow" + t).bgColor='#CCFF99';
    }
  }

}
function closeDiv(maginfierDisplayName, maginfierDisplayIFrame)
{
    _termFrame=getElement(maginfierDisplayName);
    _termFrame.style.display = 'none'   
   getElement(maginfierDisplayIFrame).style.display = 'none';
}
function operationRequest(queryString, postBlock) {  
   
    var url = serverPath + "/AjaxMaginfier?" +  queryString;
   
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("POST", url, true);    
  //    postBlock = "»ñµÃ½çÃæÔªËØ";
  //ÉèÖôó¿éÊý¾Ý´«ÊäpostBlock£¬ÕâÑù¿ÉÒÔ½â¾ö´óÊý¾ÝÁ¿´«Ïòºǫ́¡£
    xmlHttp.send(postBlock);
}
// »ñµÃ½çÃæÔªËØ
function getElement(idString)

// Êó±êÒÆ¶¯
function rollover(tdObject)

function rollout(tdObject)

function filled(keyStr, valueStr, maginfierDisplayName, maginfierDisplayIFrame)

   keys = keyStr.split(",");
   values = valueStr.split("<c>");
  
   for(i = 0; i < keys.length; i++)
   {
     
      _test = getElement(keys[i]);
      _test.value = values[i];
   }     
   _termFrame=getElement(maginfierDisplayName);
   _termFrame.style.display = 'none'   
   getElement(maginfierDisplayIFrame).style.display = 'none';
   if(document.getElementById(nextPos) != null)
   {   
      document.getElementById(nextPos).focus();
   }
}

function responseDisplay() {      
    var responseText = xmlHttp.responseText;
    var responseContent = responseText.split("|");
    var dataText = responseContent[0];
   if(dataText.length == 0)
   {
       var displayStr =  '<table width="98%"><tr><td align="right" style="border-bottom:0px"><img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(''+displayName+'',''+displayIFrame+'')"></td></tr></table><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv(''+displayName+'',''+displayIFrame+'')">' + '<font class="sfont" color="red">ûÓзûºÏÌõ¼þµÄ¼Ç¼£¬µãÈÎÒâ¼ü·µ»Ø</font>';
       displayAlert(displayStr);
       return;
   }
    var rows = dataText.split("<r>");   
    var _t=[];   
    var cols;
    var pos = "'" + posNames + "'";   
   
    for(var i = 0; i < rows.length; i++) {
        cols = rows[i].split("<c>");      
        values = "'" ;
        valuesIndexArray = valueIndexs.split(",");
        for( j = 0; j < valuesIndexArray.length; j++)
        {
            var temp = cols[eval(valuesIndexArray[j])];
            //»ØÌîʱ°ÑnullÖû»³É¿Õ×Ö·û´®
            if(temp == 'null')
            {
                temp = '';
            }
            if(j < valuesIndexArray.length - 1)
            {
                values = values + temp + "<c>";
            }
            else
           {
               values = values + temp + "'";
           }
        } 
       
        if(i == 0)
        {
           _t[i] = '<tr  class="maginfierBody" id = "'+maginfierName+'divrow0" onmouseover="rollover(this)" onmouseout="rollout(this)" ><td width="5"  align="center"><input type="radio" id="'+maginfierName+'rdo" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',''+maginfierName+'',''+displayName+'',''+displayIFrame+'');" ></td>';
        }
        else
        {
            _t[i] = '<tr class="maginfierBody" id = "'+maginfierName+'divrow'+i+'" onmouseover="rollover(this)" onmouseout="rollout(this)"  ><td width="5"  align="center"><input type="radio" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',''+maginfierName+'',''+displayName+'',''+displayIFrame+'');" ></td>';
        }
        //¸ù¾Ý±íÍ·ÏÔʾÏà¹ØÊý¾Ý    
        for(var j = 1 ; j < tableHead.length ; j++)
        {
            //ÔÚ·Å´ó¾µ±í¸ñÏÔʾʱ£¬°ÑnullÖû»³É¿Õ¸ñÏÔʾ
            if(cols[j] == 'null')
            {
                cols[j] = "&nbsp;";
            }
            _t[i] = _t[i] + '<td  onclick="filled('+pos+', '+values+',''+displayName+'',''+displayIFrame+'')"><span class="rs">'+cols[j]+'</span></td>';
        }
        _t[i] = _t[i] + '</tr>';
       
    } 
    
     var tableHeadStr = addMaginfierHeader();
    
    displayStr =  '<table width="98%"><tr><td align="right" style="border-bottom:0px"><img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(''+displayName+'',''+displayIFrame+'')"></td></tr></table><table cellspacing="1" width="98%" cellpadding="1" class="ItemList">'+ tableHeadStr +_t.join('')+'</table> ';
    if(responseContent[1] != null)
    {
        pageParams = responseContent[1].split(",");
        prePageNo = parseInt(pageParams[2]) - 1;
        prePageFunction = maginfierFunction + "," +prePageNo+")";
        nextPageNo = parseInt(pageParams[2]) + 1;
        nextPageFunction = maginfierFunction + ", "+nextPageNo+")";
       
        displayStr += '<br> <a href="javascript:if('+prePageNo+' == 0)else ">ÉÏÒ»Ò³</a>';
        displayStr += '<font class="sfont"> | µÚ'+pageParams[2]+'Ò³ | </font> ';
        displayStr += '<a href="javascript:if('+nextPageNo+' > '+pageParams[1]+'){alert('ÒѾ­ÊÇ×îºóÒ»Ò³ÁË'); }else">ÏÂÒ»Ò³</a>';
        displayStr += '<font class="sfont"> | ¹²'+pageParams[1]+'Ò³ | ¹²'+pageParams[0]+'ÐÐ</font>';      
    }
  
    displayMaginfier(displayStr);
 
}
function test()
{
    var a = '23,,,43,23';
    var b = a.split(",");
    alert(b.length);
}
function addMaginfierHeader()
{
    var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';
    for(i = 1 ; i < tableHead.length ; i++)
    {
        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"
    }
    tableHeadStr = tableHeadStr + "</tr>";
    return tableHeadStr;
}
function displayAlert(displayStr)
{
    displayDiv = getElement(displayName);   
 displayDiv.innerHTML = displayStr; 
 displayDiv.style.display='block';  
 
    IfrRef = getElement(displayIFrame);
 IfrRef.style.width = displayDiv.offsetWidth;
    IfrRef.style.height = displayDiv.offsetHeight;
    IfrRef.style.top = displayDiv.style.top;
    IfrRef.style.left = displayDiv.style.left;
    IfrRef.style.zIndex = displayDiv.style.zIndex - 1;
    IfrRef.style.display = "block";
 
 document.getElementById(maginfierName+"rdoAlert").checked = true; 
 document.getElementById(maginfierName+"rdoAlert").focus(); 
}
function displayMaginfier(displayStr)
{
    displayDiv = getElement(displayName);   
 displayDiv.innerHTML = displayStr; 
 displayDiv.style.display='block'; 
 
 
    IfrRef = getElement(displayIFrame);
 IfrRef.style.width = displayDiv.offsetWidth;
    IfrRef.style.height = displayDiv.offsetHeight;
    IfrRef.style.top = displayDiv.style.top;
    IfrRef.style.left = displayDiv.style.left;
    IfrRef.style.zIndex = displayDiv.style.zIndex - 1;
    IfrRef.style.display = "block";
 
 document.getElementById(maginfierName+"divrow0").bgColor='#CCFF99';
 document.getElementById(maginfierName+"rdo").checked = true; 
 document.getElementById(maginfierName+"rdo").focus();
}

/*¾ßÌå·Å´ó¾µÒ³Ãæ´¦Àí·½·¨*/
function handleStateChange() {   
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {          
           responseDisplay();          
        }
    }
}
function initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0)
{
    serverPath = serverPath0; 
    displayName = divName;
    displayIFrame = iFrameName;
    posNames = posNames0;
    valueIndexs = valueIndexs0
    nextPos = nextPos0;
}

/*¾ßÌå·Å´ó¾µJavaScript*/

//×éÖ¯»ú¹¹·Å´ó¾µ
function orgMaginfier(serverPath0, divName, iFrameName, posNames0,valueIndexs0, nextPos0, orgCode, orgId, transTypeId, maginfierType, pageNo)
{   
 initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0);
 maginfierName = 'OrgMaginfier' + divName; 
 maginfierFunction = "orgMaginfier('"+serverPath0+"', '"+divName+"', '"+iFrameName+"', '"+posNames0+"','"+valueIndexs0+"', '"+nextPos0+"', '"+orgCode+"', '"+orgId+"', '"+transTypeId+"', '"+maginfierType+"'";
   
    len = tableHead.length;
    tableHead.splice(0, len);
    tableHead[0] = "µ¥Î»ID";
    tableHead[1] = "µ¥Î»±àºÅ";
    tableHead[2] = "µ¥Î»Ãû³Æ";      
    tableHead[3] = "µ¥Î»Ó¢ÎÄÃû³Æ";
   
    queryString = "maginfierClassName=OrgMaginfier&orgCode="+orgCode+"&orgId="+orgId+"&maginfierType="+maginfierType+"&transTypeId="+transTypeId+"&pageNo="+pageNo;
   
  operationRequest(queryString);
}

 

3.1.1.2       CssÎļþÄÚÈÝ£º

 

/* ½çÃæÑùʽ */

.termFrame{

       width:298px !important;

       width:500px;

       overflow:auto;

       height:360px;

       scrollbar-face-color: #FFFFCC; scrollbar-shadow-color: #FFFFCC; scrollbar-highlight-color: #FFFFCC; scrollbar-3dlight-color: #FFFFCC;  scrollbar-darkshadow-color: #6699CC; scrollbar-track-color: #FFFFCC; scrollbar-arrow-color: #99CCFF;

   

       margin-top:1px !important;

       margin-top:0; 

       border:1px solid #999999;

       background-color:#FFFFFF;

       position:absolute;

       cursor:hand;

       padding:2px;

       font-size:70%;

       z-index:100

       }

       .maginfierTitle {

 BORDER-RIGHT: 1px; BORDER-TOP: 1px;BORDER-LEFT: 1px; BORDER-BOTTOM: 1px;BACKGROUND-COLOR: #456795; color: #FFFFFF;

}

       .maginfierBody {

        BORDER-RIGHT: 1px;BORDER-TOP: 1px;BORDER-LEFT: 1px;BORDER-BOTTOM: 1px;

}

3.1.2   µ±µã»÷²éѯÖúÊÖͼ±êʱ£¨ÀýÈç²éѯ×éÖ¯»ú¹¹£©£º

function orgMaginfier(serverPath0, divName, iFrameName, posNames0,valueIndexs0, nextPos0, orgCode, orgId, transTypeId, maginfierType, pageNo)

{   

       initMaginfierParas(serverPath0, divName, iFrameName, posNames0, valueIndexs0, nextPos0);

       maginfierName = 'OrgMaginfier' + divName;      

       maginfierFunction = "orgMaginfier('"+serverPath0+"', '"+divName+"', '"+iFrameName+"', '"+posNames0+"','"+valueIndexs0+"', '"+nextPos0+"', '"+orgCode+"', '"+orgId+"', '"+transTypeId+"', '"+maginfierType+"'";

   

    len = tableHead.length;

    tableHead.splice(0, len);

    tableHead[0] = "µ¥Î»ID";

    tableHead[1] = "µ¥Î»±àºÅ";

    tableHead[2] = "µ¥Î»Ãû³Æ";      

    tableHead[3] = "µ¥Î»Ó¢ÎÄÃû³Æ";

   

    queryString = "maginfierClassName=OrgMaginfier&orgCode="+orgCode+"&orgId="+orgId+"&maginfierType="+maginfierType+"&transTypeId="+transTypeId+"&pageNo="+pageNo;

   

  operationRequest(queryString);

}

3.1.3   JsÖеĴ¦ÀíÇëÇóµÄº¯Êý

function operationRequest(queryString, postBlock) {  

   

    var url = serverPath + "/AjaxMaginfier?" +  queryString;

   

    createXMLHttpRequest();

    xmlHttp.onreadystatechange = handleStateChange;

    xmlHttp.open("POST", url, true);    

  //    postBlock = "»ñµÃ½çÃæÔªËØ";

  //ÉèÖôó¿éÊý¾Ý´«ÊäpostBlock£¬ÕâÑù¿ÉÒÔ½â¾ö´óÊý¾ÝÁ¿´«Ïòºǫ́¡£

    xmlHttp.send(postBlock);

}

3.1.4   µ±Êý¾Ý´«»ØÇ°Ì¨ºó

//¸Ãº¯ÊýµÄÃû³Æ²»Òª¸Ä±ä£¬ÒòΪÎÒÔÚjsÎļþÖоö¶¨ÁËÓøú¯ÊýÀ´´¦Àí´«»ØµÄÊý¾Ý

function handleStateChange() {   

    if(xmlHttp.readyState == 4) {

        if(xmlHttp.status == 200) {          

           responseDisplay();          

        }

    }

}

3.1.5   ¾ßÌå´¦Àí´«»ØµÄÊý¾Ý£º

function responseDisplay() {      

    var responseText = xmlHttp.responseText;

    var responseContent = responseText.split("|");

    var dataText = responseContent[0];

   if(dataText.length == 0)

   {

       var displayStr = rightSpace + '<img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv(''+displayName+'',''+displayIFrame+'')"><br><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv(''+displayName+'',''+displayIFrame+'')">' + '<font class="sfont" color="red">ûÓзûºÏÌõ¼þµÄ¼Ç¼£¬µãÈÎÒâ¼ü·µ»Ø</font>';

       displayAlert(displayStr);

       return;

   }

    var rows = dataText.split(";");   

    var _t=[];   

    var cols;

    var pos = "'" + posNames + "'";   

   

    for(var i = 0; i < rows.length; i++) {

        cols = rows[i].split(",");      

        values = "'" ;

        valuesIndexArray = valueIndexs.split(",");

        for( j = 0; j < valuesIndexArray.length; j++)

        {

            var temp = cols[eval(valuesIndexArray[j])];

            //»ØÌîʱ°ÑnullÖû»³É¿Õ×Ö·û´®

            if(temp == 'null')

            {

                temp = '';

            }

            if(j < valuesIndexArray.length - 1)

            {

                values = values + temp + ",";

            }

            else

           {

               values = values + temp + "'";

           }

        } 

       

        if(i == 0)

        {

           _t[i] = '<tr  class="maginfierBody" id = "'+maginfierName+'divrow0" onmouseover="rollover(this)" onmouseout="rollout(this)" ><td width="5"  align="center"><input type="radio" id="'+maginfierName+'rdo" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',''+maginfierName+'',''+displayName+'',''+displayIFrame+'');" ></td>';

        }

        else

        {

            _t[i] = '<tr class="maginfierBody" id = "'+maginfierName+'divrow'+i+'" onmouseover="rollover(this)" onmouseout="rollout(this)"  ><td width="5"  align="center"><input type="radio" name="rdo"  onkeydown=" keyDowm('+i+', '+pos+', '+values+',''+maginfierName+'',''+displayName+'',''+displayIFrame+'');" ></td>';

        }

        //¸ù¾Ý±íÍ·ÏÔʾÏà¹ØÊý¾Ý    

        for(var j = 0 ; j < tableHead.length ; j++)

        {

            //ÔÚ²éѯÖúÊÖ±í¸ñÏÔʾʱ£¬°ÑnullÖû»³É¿Õ¸ñÏÔʾ

            if(cols[j] == 'null')

            {

                cols[j] = "&nbsp;";

            }

            _t[i] = _t[i] + '<td  onclick="filled('+pos+', '+values+',''+displayName+'',''+displayIFrame+'')"><span class="rs">'+cols[j]+'</span></td>';

        }

        _t[i] = _t[i] + '</tr>';

       

    } //ÏÔʾ±íÍ·ÄÚÈÝ

function addMaginfierHeader()

{

    var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';

    for(i = 0 ; i < tableHead.length ; i++)

    {

        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"

    }

    tableHeadStr = tableHeadStr + "</tr>";

    return tableHeadStr;

}

//Èç¹ûδ²éѯµ½¼Í¼£¬ÏÔʾÌáʾÐÅÏ¢

function displayAlert(displayStr)

{

    _termFrame=getElement(displayName);

   

       _termFrame.innerHTML = displayStr;

       // ÏÔʾ½á¹û

      

       _termFrame.style.display='block';

      

       IfrRef = getElement(displayIFrame);

       IfrRef.style.width = _termFrame.offsetWidth;

    IfrRef.style.height = _termFrame.offsetHeight;

    IfrRef.style.top = _termFrame.style.top;

    IfrRef.style.left = _termFrame.style.left;

    IfrRef.style.zIndex = _termFrame.style.zIndex - 1;

    IfrRef.style.display = "block";

      

       document.getElementById(maginfierName+"rdoAlert").checked = true;

      

       document.getElementById(maginfierName+"rdoAlert").focus();

      

}

//ÏÔʾ²éѯÖúÊÖ

function displayMaginfier(displayStr)

{

    _termFrame=getElement(displayName);

   

       _termFrame.innerHTML = displayStr;

       // ÏÔʾ½á¹û

       _termFrame.style.display='block';

       //setHidden(overlaySelEles);

       //_termFrame.style.visibility="visible";

       IfrRef = getElement(displayIFrame);

       IfrRef.style.width = _termFrame.offsetWidth;

    IfrRef.style.height = _termFrame.offsetHeight;

    IfrRef.style.top = _termFrame.style.top;

    IfrRef.style.left = _termFrame.style.left;

    IfrRef.style.zIndex = _termFrame.style.zIndex - 1;

    IfrRef.style.display = "block";

      

       document.getElementById(maginfierName+"divrow0").bgColor='#CCFF99';

       document.getElementById(maginfierName+"rdo").checked = true;

      

       document.getElementById(maginfierName+"rdo").focus();

}

3.2    Servletºǫ́

Ñ¡ÔñServlet×÷Ϊºǫ́£¬ÊÇÒòΪÈç¹û²ÉÓÃStruts ActionΪºǫ́´¦Àí³ÌÐò£¬Ôò±ØÐëÖ¸¶¨Òª·µ»ØµÄÒ³Ãæ¡£¶øÊ¹ÓÃServletÔòûÓÐÕâ¸öÒªÇó¡£Ä¬ÈÏ·µ»Øµ½ÇëÇóÒ³Ãæ¡£¶øÕâ¸ö²éѯÖúÊÖServlet½ÓÊÜËùÓеIJéѯÖúÊÖÇëÇ󣬸ù¾Ýǰ̨´«À´µÄ²éѯÖúÊÖʵÏÖÀàÃû³Æ²ÎÊý£¬ÓÉSpring´´½¨²éѯÖúÊÖʵÏÖÀà¶ÔÏ󣬸öÔÏóʵÏÖÁ˲éѯÖúÊÖ½Ó¿Ú£¨MaginfierInterface£©£¬´Ó¶ø»ñÈ¡·µ»ØÖµÎı¾¡£·µ»Øµ½Ç°Ì¨¡£

3.2.1   ¾ßÌå´úÂëÈçÏ£º

3.2.1.1       ²éѯÖúÊÖServlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              String maginfierClassName = request.getParameter("maginfierClassName");           

              MaginfierFactory factory = MaginfierFactory.getInstance();

              MaginfierInterface maginfier = factory.createMaginfier(maginfierClassName);

        String ret =  maginfier.getReturnValue(request);

        System.out.println("ret = " + ret);

              response.setContentType("text/xml;charset=GBK");

              PrintWriter out = response.getWriter();

                           

              out.write(ret);

             

              out.close();

       }

3.2.1.2       Web.xmlÅäÖÃ

3.2.1.2.1      ÔÚ£×£å£â£®£ø£í£ìÖÐÅäÖòéѯÖúÊÖServlet

<servlet>

        <servlet-name>AjaxMaginfier</servlet-name>

        <servlet-class>com.iss.fs.web.module.example.AjaxMaginfier</servlet-class>

        <!¡ªÔÚϵͳ³õ´ÎÆô¶¯Ê±£¬³õʼ»¯1´Î-->       

        <load-on-startup>1</load-on-startup>

 </servlet>

<servlet-mapping>

        <servlet-name>AjaxMaginfier</servlet-name>

        <url-pattern>/AjaxMaginfier</url-pattern>

 </servlet-mapping>

3.2.1.3       ²éѯÖúÊÖ¾ßÌåʵÏÖÀà

3.2.1.3.1      ʵÏÖ²éѯÖúÊÖ½Ó¿Ú·½·¨

public class CurrencyMaginfier implements MaginfierInterface

{

       public String getReturnValue(HttpServletRequest request)

       {

              List list = null;

              StringBuffer results = new StringBuffer();

              CurrencyDAO dao = new CurrencyDAO();

              String currencyAbbrName = request.getParameter("currencyAbbrName");

              String responsibilityId = request.getParameter("responsibilityId");

              if(currencyAbbrName == null || currencyAbbrName.equals("") || currencyAbbrName.equals("undefined"))

              {

                     currencyAbbrName = "";

              }

              if(responsibilityId == null || responsibilityId.equals("") || responsibilityId.equals("undefined"))

              {

                     responsibilityId = "-1";

              }

              try

              {

                     list = dao.getMaginfierResults(currencyAbbrName, responsibilityId);

                    

              }

              catch (Exception ex)

              {

                     ex.printStackTrace();

              }

              if (list != null)

              {

                     Currency currency = null;                  

                     for(int i = 0 ; i < list.size(); i++)

                     {

                            currency = (Currency)list.get(i);

                            results.append(currency.getID()).append(",");

                            results.append(currency.getCurrencyAbbrName()).append(",");

                            results.append(currency.getCurrencyName());                         

                            if(i < (list.size() - 1))

                            {

                                   results.append(";");

                            }

                     }

              }

              return results.toString();

       }

}

3.3    ¼¼ÊõÄѵã½âÎö

3.3.1   ²éѯÖúÊÖº¯Êý²ÎÊýÉè¼Æ£º

¹Ì¶¨²ÎÊý£ºserverPath, divName, iFrameName, posNames,valueIndexs, nextPos

serverPath£º±íʾwebserverµÄµØÖ·£¬È磺/myapp

divName£ºÏÔʾѡÔñ½çÃæµÄDivÃû³Æ

iFrameName£ºÏÔʾѡÔñ½çÃæµÄIfranmeÃû³Æ£¬ÒòΪIEµÄȱÏÝ£¬divÏÔʾʱ²»Äܸ²¸ÇÏÂÃæµÄÑ¡Ôñ¿ò£¬ËùÒÔÎÒÃÇʹÓÃIframe×÷ΪdivµÄµ×°å¡£

posNames£ºÑ¡Ôñ¼Í¼ºó»ØÏÔµÄÒ³ÃæÔªËØ£¬È磺orgId,orgName,orgCode

valueIndexs£º¶ÔÓ¦»ØÏÔÒ³ÃæÔªËØ£¬¼Í¼µÄÁÐÐòºÅ£¬Èç 0,2,1

nextPos£ºÑ¡Ôñ½áÊøºóÒª°ÑÊäÈë½¹µã£¬Òƶ¯µ½ÏÂÒ»¸öÒ³ÃæÔªËØÃû³Æ

¹Ì¶¨²ÎÊýºóÃæµÄ²ÎÊý£¬²»Í¬µÄ²éѯÖúÊÖÓв»Í¬²ÎÊýÁÐ±í£¬Ö÷ÒªÊÇÌõ¼þÊý¾Ý¡£

3.3.2   ²éѯÖúÊÖÑ¡Ôñ½çÃæµÄ±íÍ·Éè¼Æ£º

²»Í¬µÄ²éѯÖúÊÖÑ¡Ôñ½çÃæÓв»Í¬µÄ±íÍ·£¬ÎÒÃÇʹÓÃjsµÄÈ«¾ÖÊý×é±äÁ¿À´´æ´¢£¬Ã¿¸ö²éѯÖúÊÖʹÓÃǰ¶¼ÏÈÇå¿Õ±íÍ·Êý×飬ʹÓÃsplice(0, len)

len = tableHead.length;

    tableHead.splice(0, len);   

    tableHead[0] = "ÍⲿÕË»§ID";

    tableHead[1] = "ÍⲿÕË»§±àºÅ";

    tableHead[2] = "ÍⲿÕË»§Ãû³Æ";

    tableHead[3] = "Íâ²¿ÒøÐÐÃû³Æ";

    tableHead[4] = "»ú¹¹ºÅ";

    tableHead[5] = "ÁªÐкÅ";

ÏÔʾ±íÍ·£º

var tableHeadStr = '<tr class="maginfierTitle"><td width="5"  align="center" ></td>';

    for(i = 0 ; i < tableHead.length ; i++)

    {

        tableHeadStr = tableHeadStr + '<td align="center" >' + tableHead[i] + "</td>"

    }

tableHeadStr = tableHeadStr + "</tr>";

3.3.3   ´¦Àíºǫ́´«À´µÄÊý¾Ý£º

3.3.3.1.1      ½ÓÊÜÊý¾Ý£º

var responseText = xmlHttp.responseText;

3.3.3.1.2      ²éѯÎ޼ͼ´¦Àí£º

if(responseText.length == 0)

   {

       var displayStr = rightSpace + '<img src = "/fs/graphics/closeMaginfier.jpg" onclick="closeDiv()"><br><input type="radio" id="'+maginfierName+'rdoAlert" name="rdo"  onkeydown=" closeDiv()">' + '<font class="sfont" color="red">ûÓзûºÏÌõ¼þµÄ¼Ç¼£¬µãÈÎÒâ¼ü·µ»Ø</font>';

       displayAlert(displayStr);

       return;

   }

Onkeydown±íʾÏìÓ¦ÈÎÒâ¼ü£¬Ôò¹Ø±Õ²éѯÖúÊÖÑ¡Ôñ½çÃæ¡£

Onclick ±íʾÏìÓ¦Êó±êµã»÷

3.3.3.1.3      ÏÔʾ²éѯ½á¹û£º

ÒòΪÎÒÃÇÔÚºǫ́°Ñ²éѯÊý¾Ý·â×°³ÉÎı¾´«»ØÇ°Ì¨£¬ËùÒÔµ½Ç°Ì¨ºóÒª½âÎöÎı¾£¬ÎÒ²»Ê¹ÓÃxmlÎı¾£¬Êý¾Ý·â×°¹æÔòÊǼͼ¼äÓá°£»¡±¸ôÀ룬ÁÐÖ®¼äÓá°£¬¡±¸ôÀ롣ͬÑùµ½Ç°Ì¨ºóʹÓÃÏàͬµÄ¹æÔò½âÎöÊý¾Ý¡£

°ÑÎı¾Êý¾Ý·Ö³ÉÈô¸ÉÐÐÊý¾Ý

var rows = responseText.split(";");

3.4    ×ܽá

AjaxʵÏÖ²éѯÖúÊÖ¹¦ÄÜÊÇAjaxÔÚÏîÄ¿ÖÐʵսµÄÒ»¸öССµÄÀý×Ó£¬¸ù¾ÝÒÔºóµÄÑз¢£¬½«»á²úÉú¸ü¶à¸üºÃµÄÓ¦Ó㬱¾ÈËÔÚÎĵµµÄAjax¼ò½é²¿·ÖÒýÓÃÁ˱ðµÄÎĵµµÄ˵Ã÷£¬ÔÚ²éѯÖúÊÖµÄʵÏÖÖÐ½è¼øÁËGoogleµÄSuggestÉè¼ÆÀíÄSuggestʵÏÖÊÇÖ±½Ó´Óºǫ́´«À´±í¸ñFrame£¬ºǫ́¶¨ÒåÏÔʾÂß¼­£¬ÔÚ²éѯÖúÊÖµÄÉè¼ÆÖУ¬Ç°Ì¨À´¾ö¶¨ÏÔʾÂß¼­£¬ºǫ́½öÌṩÊý¾Ý£¬ÊµÏÖÊý¾ÝºÍÏÔʾµÄ·ÖÀ룬ÕâÑù¾Í»áÔì³Éǰ̨ÐèÒª½âÎöÊý¾ÝÎı¾£¬´¦ÀíÏÔʾÂß¼­µÄJavascriptº¯Êý£¬ÏÔµÃǰ̨µÄJavaScript±È½Ï¶à£¬µ«ÎÒÈÏΪÕâÊÇ¿ÉÒÔ½ÓÊܵģ¬ÒòΪAjaxÖ÷ÒªÊÇǰ̨Âß¼­¡£ÁíÍ⣬Ajax²éѯÖúÊֵĺǫ́ʵÏÖ²ÉÓÃÁËSpring Bean¹ÜÀíÈÝÆ÷£¬Ö»ÊÇΪÁ˺óÆÚÀ©Õ¹µÄ·½±ãÐÔ£¬½èÖúSpringÈÝÆ÷¹ÜÀíµÄÇ¿´ó¹¦ÄÜ£¬ÊµÏÖÀàËÆ¹¤³§Ä£Ê½µÄ¹¦ÄÜ¡£

 Å¬Á¦£¬ÔÚÓÚÎÒÈȰ®ÎÒµÄÊÂÒµ£¬ÓëÖйúµÄÈí¼þÒ»Æð×ßÏò³ÉÊ죬×ßÏòÊÀ½ç¡£

 

 

 

 

 

 

 

 

 

 

Óû§ÆÀÂÛ

  • Óû§Ãû
  • ÆÀÂÛÄÚÈÝ