2011-05-05 1 views
-1

수 있도록 내 아약스에서 작동하지 :이 코드jQuery를은 HTML 페이지를로드하는 나는 다음과 아약스 코드를 사용하여 페이지

var AJAX = { 
      request:false, 
      createHttpRequest:function() 
      { 
       //initiate HttpRequest for AJAX calling 
       if (!AJAX.request && typeof XMLHttpRequest!='undefined') 
       { 
        try 
        { 
         AJAX.request = new XMLHttpRequest(); 
        } 
        catch (e) 
        { 
         AJAX.request=false; 
         alert("This Browser Does not Support AJAX"); 
        } 
       } 
       if (!AJAX.request && window.createRequest) 
       { 
        try 
        { 
         AJAX.request = window.createRequest(); 
        } 
        catch (e) 
        { 
         AJAX.request=false; 
         alert("This Browser Does not Support AJAX"); 
        } 
       } 

       }, 
       call:function(method,url,asyn) 
       { 
        AJAX.request.open(method,url,asyn); 
       }, 
       send:function(value) 
       { 
        AJAX.request.send(value); 
       } 
      } 

var serverTable; 
var popup; 
var NAVIGATION = { 
        MENU:function(filename,table,ftpFlag,ftppath,svrpath) 
        { 
         AJAX.createHttpRequest();     
         AJAX.call("GET",filename,true);     
         AJAX.request.onreadystatechange=function() 
          {   
           if (AJAX.request.readyState==4) 
            { 
             document.getElementById('contentMain').innerHTML=AJAX.request.responseText;    
             if(ftpFlag==true) 
             {       
              document.getElementById("conStatus").src="images/spinner.gif";       
              $('#serverFileTree').fileTree(
              { 
               root: svrpath, script: 'serverfileTree.php' 
              }, 
              function(file) 
              { 
               alert(file); 
              }); 
              $('#ftpFileTree').fileTree(
              { 
               root: ftppath, script: 'ftpfileTree.php' 
              }, 
              function(file) 
              { 
               alert(file);        
              }); 
              popup= $("#destname").dialog(
              { 
               resizable: false, 
               height:180, 
               modal: true, 
               title: "Destination File Name", 
               draggable: true, 
               autoOpen: false, 
               hide:true, 
               buttons: 
               { 
                Ok: function() 
                { 

                 if(document.getElementById('destfiletext').value.match(" ")) 
                 { 
                  alert("There should be no space in name"); 
                 } 
                 else 
                 { 
                  destDirSelected=destDirSelected+document.getElementById('destfiletext').value; 
                  serverTable.fnAddData([destDirSelected,selected]); 

                  AJAX.createHttpRequest(); 
                  AJAX.call("GET","prepareFtpReplace.php?src="+selected+"&dest="+destDirSelected,true); 
                  AJAX.request.onreadystatechange=function() 
                  { 
                   if (AJAX.request.readyState==4) 
                   { 

                   } 
                  } 

                 AJAX.send(null); 

                 $(this).dialog('close'); 
                 } 
                }, 
                Cancel: function() 
                { 
                 $(this).dialog('close'); 
                } 
               } 
              }); 



             } 
             if(table==true) 
             { 
              serverTable = $("#serverList").dataTable( 
              { 
                    "bPaginate": false, 
                    "bFilter": false, 
                    "bSort": false, 
                    "bInfo": false, 
              });       

             } 

            } 
          } 

        AJAX.send(null); 
        } 

       } 

HTML 페이지 무승부를 "contentMain" DIV에. 내가 "contentMain"작동하지 않는로드 된 HTML 페이지에 포함되어 DIV 후 JQuery와의 HTML 페이지를로드 할 때

<body bgcolor="#828282"> 

<table width="967px" height="400px" align=center cellpadding="0" cellspacing="0"> 
    <tr> 
     <td colspan="3" height="80px" class="ui-widget-shadow" align="center"> 
      <span style="font-family:verdana;font-size: 26px;font-weight: bold; text-align: center;color:#fff" ></span> 
      <span style="text-align: right; float:right;" ><img height="55px" width="55px" src="images/m1.jpg" /></span> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="3" height="25px" align="center"> 
      <span style="float:right;">Welcome Mr. <?php echo $u; ?>|&nbsp;&nbsp;<a href="logout.php">logout</a></span> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="3" height="2px" bgcolor="#828282" align="center"> 

     </td> 
    </tr> 
    <tr> 
     <td width="180px" valign="top" align="center" height="100%" > 
      <?php include("tiles/leftMenu.php");?> 
     </td> 
     <td width="5" bgcolor="#828282"> 
     </td> 
     <td align="center" valign="top"> 
     <div id="contentMain"></div> 
     </td> 
    </tr> 
</table> 

</body> 

문제는 다음과 같습니다

여기 내 주요 HTML입니다. 이 문제를 어떻게 해결할 수 있습니까? 미리 감사드립니다.

+5

ummm jQuery를 사용하는 경우 왜 ** jQuery의 ajax 메소드를 ** 사용하지 않습니까? – Neal

+0

@Neal은 기존 코드에있는 모든 솔루션을 제공합니까? –

답변

1

내가 대신 Ajax 코드의 다음 코드를 사용하고 있습니다 :

var NAVIGATION = function() { 
    return { 
     MENU: function(page, success) { 
      $('#contentMain').load(page, function() { 
       return true; 
      }); 
     } 
    } 
}(); 

그것의 아주 잘 작동합니다.

0

일부 jQuery 메서드를 활용하십시오.

$.ajax(), $.get(), $.post()

모든 코드를 더 쉽게 읽을 수 있도록 도와 아마 당신이

+2

나는 여기에 @kingjiv – Neal

0

변경은 jQuery의 아약스를 사용하고 자바 스크립트를 사용할 수 발생하는 이러한 오류를 제거합니다.

자신 만의 방법을 사용하고 있다면 브라우저에서 eval을 통해 javascript를 실행해야합니다. div의 innerHTML에 붙이면 페이지에서 사용할 수 없게됩니다.

편집 : Calling a JavaScript function returned from an Ajax response 허용되는 해결 방법을 참조하십시오. 귀하의 아약스에 대한 jquery를 사용하면 이것을 해결할 것입니다.

+1

-1과 같은 주장을하고 있습니까? ... 유효한 대답입니다. 어쨌든 분명 jquery를 사용하고 있습니다. 왜 인생을 편하게하지 않으시겠습니까? 그리고 그것을 사용하고 싶지 않다면 평가가 필요합니다. 나는 이것이 왜 표결되었는지 알지 못한다. –

관련 문제