2011-12-21 25 views
0

JQUERYに問題があるようです。JQuery AJAXリクエストが必須のdivに表示されない

私は、開くためにダイアログボックスを呼び出すonclickイベントを持っています。 ダイアログボックスを開くと、Jquery要求の両方の2つの関数が呼び出されます。

両方の関数がメンバーIDを送信し、両方とも必要な情報を返しますが、要求の1つだけが表示されている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...";} 
     }); 

これは、2つの関数を呼び出して、ダイアログボックスで... ...

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呼び出しです。その機能が正しくないと思われる機能はありますか?出力されないコール、または間違った場所に出力されているコールの1つですか?両者には大きな違いがあります。また、divのためにあなたのHTMLを投稿してください - それが正しく定義されているというあなたの言葉は本当に保証が足りません。 –

+2

すでにjQueryを使用しているときにjQueryのAJAXライブラリを使用していないことがわかりません...もっと楽になるでしょう。 –

+0

もう1つのこと - 要求(機能)のどちらが期待通りに機能し、どちらが間違っているのでしょうか?それらのどれが不完全であるかを知ることは、それを絞り込むのに役立ち、より迅速に答えを得ることができます。 –

答えて

1

私は暗闇の中で刺しを取るつもり、とこれはあなたの問題かもしれないと言っている:最後の3行は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

ありがとうございます。 私は最後の3行を逃したとは思わない。 ありがとうございました リッチ – Rich

2

USE jQuery ajax()...この頭痛と余分なコードをすべて保存します。その後、

しかし: xmlhtt1pは第二の機能でちょうど間違っおよび他の参考文献でも間違っている(これはあなたの本当の問題である)

も(ない本当に問題の一部が、...) ない理由。 :

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

が同じである

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

EDIT:注:xmlhttp、xmlhttp1、xmlhtt1pはすべてグローバル参照ですが、それは意図されていますか?そうであれば、ajaxコールの非同期性がちょうどあなたのところに来るかもしれません。

関連する問題