Jquery AJAX请求不显示在所需的div中

时间:2011-12-21 15:37:29

标签: javascript jquery ajax

我似乎遇到了JQUERY的问题。

我有一个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 个答案:

答案 0 :(得分:2)

USE jQuery ajax()...保存所有这些头痛和额外的代码。

然后:  xmlhtt1p是错误的,第二个函数中的其他引用也是错误的。(这是你的真实问题)

另外(不是问题的一部分,但......) 为什么:

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

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

是一样的吗?

编辑:注意:xmlhttp,xmlhttp1,xmlhtt1p都是全局引用,是不是意图?如果是这样,ajax调用的异步性质可能会妨碍你。

答案 1 :(得分:1)

我会在黑暗中刺伤,并说这可能是你的问题:

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);
}

请注意,最后三行引用xmlhttp,而函数的其余部分引用xmlhttp1