2011-12-21 4 views
0

JQUERY에 문제가있는 것 같습니다.JQuery AJAX 요청이 필수 div에 표시되지 않습니다.

대화 상자가 열리도록 호출하는 onclick 이벤트가 있습니다. 대화 상자를 열면 Jquery 요청과 두 가지 기능이 모두 호출됩니다.

두 함수가 모두 구성원 ID를 보내고 둘 다 필요한 정보를 반환하지만 요청 중 하나만이 해당 div에 표시됩니다. 이것은 첫 번째 함수는

$("#memberInfo").dialog({ 
     open: function() { 
      getUserCourseInfo(memberid); 
      getUserInfo(memberid); }, 
     autoOpen: false, 
     height: 750, 
     width: 610, 
     modal: true, 
     title: 'Member Information', 
     buttons: { 
      Close: function() {$(this).dialog("close");}}, 
     close: function() { 
      document.getElementById("memberInfoInner").innerHTML="Please Wait...";} 
     }); 

이 두 함수를 호출하는 대화 상자입니다 ... ...

function getUserInfo(str) //Show the individual user 
{ 
document.getElementById("memberInfoInner").innerHTML=""; 
if (str=="") 
    { 
    document.getElementById("memberInfoInner").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("memberInfoInner").innerHTML=xmlhttp.responseText; 
     } 
     } 
xmlhttp.open("POST","getUser.php"); 
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xmlhttp.send("q="+ str); 
} 

이 두 번째 기능은 ...

function getUserCourseInfo(str1) 
{ 
document.getElementById("Courses").innerHTML=""; 
if (str1=="") 
    { 
    document.getElementById("Courses").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp1=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhtt1p=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp1.onreadystatechange=function() 
     { 
     if (xmlhttp1.readyState==4 && xmlhttp1.status==200) 
     { 
     document.getElementById("Courses").innerHTML=xmlhttp1.responseText; 
     } 
     } 
xmlhttp.open("POST","getUserCourseInfo.php"); 
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xmlhttp.send("q="+ str1); 
} 

div는 코드에서 나중에 올바르게 정의됩니다. 누구든지 도움을 줄 수 있으면 도움이 될 것입니다.

감사

리처드

+2

이러한 함수는 jQuery를 전혀 사용하지 않고 일반 Javascript AJAX 호출입니다. 그 기능이 정확하지 않다는 것을 알고 있습니까? 출력이 없거나 잘못된 위치에서 출력되는 호출 중 하나입니까? 둘 사이에 큰 차이가 있습니다. 또한 div에 대한 HTML을 게시하십시오. 올바르게 정의 된 단어는 실제로 보증으로 충분하지 않습니다. –

+2

jQuery를 이미 사용하고있을 때 jQuery의 AJAX 라이브러리를 사용하고 있지 않다는 사실을 알지 못한다면 ... 훨씬 쉽게 작업 할 수 있습니다. –

+0

또 다른 한 가지는 - 요청 (기능) 중 어느 것이 예상대로 작동하고 어느 것이 올바르지 않은 것입니까? 그들 중 어느 것이 잘못 됐는지 아는 것은 그것을 좁히는 데 도움이되며, 더 빨리 답변을 얻으실 수 있습니다. –

답변

1

내가 어둠 속에서 자상 걸릴 것, 이것이 문제가 될 수 있다고 해요 : 마지막 세 줄이 xmlhttp을 참조하는지

function getUserCourseInfo(str1) 
{ 
document.getElementById("Courses").innerHTML=""; 
if (str1=="") 
    { 
    document.getElementById("Courses").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp1=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhtt1p=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp1.onreadystatechange=function() 
     { 
     if (xmlhttp1.readyState==4 && xmlhttp1.status==200) 
     { 
     document.getElementById("Courses").innerHTML=xmlhttp1.responseText; 
     } 
     } 
xmlhttp.open("POST","getUserCourseInfo.php"); 
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
xmlhttp.send("q="+ str1); 
} 

공지 사항 나머지 함수는 xmlhttp1을 참조합니다.

+0

감사합니다. 나는 마지막 세 줄을 놓친다 고 생각하지 않는다. 다시 감사합니다. 리치 – Rich

2

USE jQuery ajax() ...이 두통과 여분의 코드를 모두 저장하십시오.

하지만 :. xmlhtt1p 그냥 잘못이고 두 번째 기능에서 다른 참조가도 잘못은 왜 또

(정말 질문의 일부하지만 ...) (이 진짜 문제입니다) :

document.getElementById("Courses").innerHTML=""; 
if (str1=="") { 
    return; 
} 

이 동일

document.getElementById("Courses").innerHTML=""; 
if (str1==""){ 
     document.getElementById("Courses").innerHTML=""; 
     return; 
    } 

?

편집 : 참고 : xmlhttp, xmlhttp1, xmlhtt1p는 모두 글로벌 참조이며 의도 한 것입니까? 그렇다면 아약스 호출의 비동기 성격이 여기까지 나아갈 수 있습니다.

관련 문제