2011-03-26 2 views
0

javascript의 일부 문제. createPagination (index, n_pages) 함수가 있습니다. 그것은 페이지 매김을 만듭니다. 이 방식으로 createPaginatio (2,5), 즉 정적 값을 제공하는 디버그 모드에서 함수를 호출하면 동일한 기본 창에 페이지 매김이 작성됩니다. 그러나 다른 곳에서 가져온 동적 값을 사용하여이 값을 호출하면 새 창에 페이지 매김이 만들어집니다. 그리고 이것은 틀렸어, 나는 같은 메인 윈도우에서 그것을보고 싶다. 이 코드입니다 :동적 데이터로 함수를 호출하면 결과가 새 창에 인쇄됩니다.

function createPagination (index, n_pages) { 
alert(index+" "+n_pages) 
var n_links = 5; 
var n_index = index; 


document.write('<table cellpadding="3" cellspacing="0" border="0" align="right"><tr>'); 


if (n_index != 0){ // if not a first page 
document.write(' <td><a href="javascript:setMessaget('+0+')" ><img src="js/images/button_page_first.gif" alt="First page" width="20" height="20" border="0"></a> <a href="javascript:setMessaget('+(n_index - 1)+')" ><img src="js/images/button_page_prev.gif" alt="Previous page" width="20" height="20" border="0" ></a></td>'); 
} 
document.write('<td>Page ' + n_index + ' of ' + n_pages + '.</td>'); 
if (n_links) { 

if (n_links > n_pages) 
n_links = n_pages; 
document.write('<td>Page: '); 
var n_sideLinks = Math.floor((n_links - 1)/2), 
n_firstLink, n_lastLink; 

if (n_index + n_sideLinks >= n_pages) { 
n_firstLink = n_pages - n_links + 1; 
n_lastLink = n_pages; 
} 

else if (n_index - n_sideLinks <= 0) { 
n_firstLink = 1; 
n_lastLink = n_links; 
} 

else { 
n_firstLink = n_index - n_sideLinks; 
n_lastLink = n_firstLink + n_links - 1; 
} 

for (var i = n_firstLink; i <= n_lastLink; i++){ 
document.write(i == n_index ? i + ' ' : '<a href="javascript:void(0)" onclick="setMessaget('+i+')">' + i + '</a> '); 
} // for loop 
document.write('</td>'); 

} 

if (n_index != n_pages){ 
document.write('<td><a href="javascript:setMessaget('+(n_index + 1)+')" ><img src="js/images/button_page_next.gif" alt="Next page" width="20" height="20" border="0" /></a> <a href="javascript:setMessaget('+n_pages+')" > <img src="js/images/button_page_last.gif" alt="Last page" width="20" height="20" border="0" /></a></td>'); 
} 

document.write(' </tr></table>'); 

} 

내가 document.write를에 입력하여 문제를 해결하기 위해 노력() 코드 : 코드 :

<a href="javascript:void(0)")> </a> 

하지만, 도움이되지 않습니다.

는뿐만 아니라 나는이 시도 : 코드 :

코드 :

stopDef = function(e) { 
if (e && e.preventDefault) 
    e.preventDefault(); 
else if (window.event && window.event.returnValue) 
    window.eventReturnValue = false; 
}; 

나는이 방법으로이 함수를 호출 : stopDef() 내가 전달해야 어떤 값을 모르겠습니다. 내가 무엇을 나는 잘못

답변

0

우리는 당신이 값을 검색하고 새 창으로 무엇을 의미합니까 방법을 알고하지 않기 때문에 말할 수 있지만, 그것은 사실과 그 뭔가가있을 수 있습니다 하드 페이지에 document.write를 호출 이미로드 된 페이지 내용을 덮어 씁니다.

+0

새 창 : 웹 사이트는 지금까지 한 페이지로 구성되어 있으며 자바 스크립트 코드는 해당 페이지에 있습니다. 프로그램을 실행하면 페이지가 생성되고 모든 데이터가 위에 표시된 코드에서 페이지에 표시됩니다.이 경고 팝업 (색인 + ""+ n_pages) 경고 팝업이 표시되면 경고 단추를 누르면 새 흰색이 표시됩니다 창 내부에서 페이지 매김을 만들었습니다. – ucas

0
I am retrieving values in this way:                   

function setMessage(index, location, category, session) 
     { 
       var xmlHttp = getXmlHttpRequest(); 
        //alert(index) 
       xmlHttp.onreadystatechange=function() 
       { 
        if(xmlHttp.readyState==4) 
        {      
         if(xmlHttp.responseText.indexOf("<body>") != -1) { 
          pageNumber = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf("<title>") + 7, xmlHttp.responseText.indexOf("</title>")) // gets the number of table being sent from <title> tag 
          s = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf("<body>") + 6, xmlHttp.responseText.indexOf("</body>")) 

          document.getElementById("output").innerHTML=s; 
          getTableNumber(pageNumber) // gets the number of tables available for display 
         } else { 
          document.getElementById("output").innerHTML=xmlHttp.responseText; 
         }     
        }      
       } 

        xmlHttp.open("GET","app/messages/" + index+"/"+location+"/"+category+"/"+session,true); 
       xmlHttp.send(null); 
      } 
      // gets the number of tables (rows) being store in database for an individual user 
       function getTableNumber(pageNumber){ 

       var xmlHttp = getXmlHttpRequest(); 
       xmlHttp.onreadystatechange=function() 
       { 
        if(xmlHttp.readyState==4) 
        { 
         if(xmlHttp.responseText.indexOf("<body>") != -1) { 
          s = xmlHttp.responseText.substring(xmlHttp.responseText.indexOf("<body>") + 6, xmlHttp.responseText.indexOf("</body>"))// retrieves number of tables stored in database 

         createPagination(pageNumber, s)// invokes function which creates paginations 


        } 
        } 
       } 
       xmlHttp.open("GET","app/messages/tableNumber/" +getCookie("eMartbyM"),true); 
       xmlHttp.send(null); 

      } 

마지막 함수는 createPagination (index, n_pages) 함수를 호출합니다.

관련 문제