在AJAX中显示来自数据库的数据的错误位置

时间:2012-06-24 06:16:19

标签: php mysql ajax

我在PHP页面中使用AJAX从MySQL数据库调用联系人列表。数据被正确调用,但是当我在浏览器中调用PHP页面时,我可以看到联系人列表(来自DB的数据)显示在元数据之前的页面顶部。该列表应显示在已定义的DIV中,但由于某种原因,它不是。以下是我的代码:

Ajax代码

function getUserList(){

var ajaxDisplay = myform.getElementById('displayList'); // HTML Div where data should be displayed 

 try{ //for Firefox, Chrome, Opera, Safari, IE7+

  var activeX = new XMLHttpRequest(); //initializing object
 }catch(e){

   try{// for IE5 , IE6
    var activeX = new ActiveXObject(Msxml2.XMLHTTP);
   }
   catch(e){

    alert("Dude your browser is in Jurassic era!");
   }
 }

  activeX.readystatechange = function{

   if(activeX.readyState == 4){
    var queryResult = activeX.responseText;

   if(!queryResult){
    ajaxDisplay.innerHTML = 'Error in populating list';
   }else{
    ajaxDisplay.innerHTML = queryResult;
   }

   }
 }

    activeX.open("GET", "?action=contactsandgroups", true);
    activeX.send(null);
}

PHP / HTML代码

<div class="contacts_list_data_contacts" id="displayList"></div>

MySQL功能

while($row=mysql_fetch_assoc($res_info)){

print '<div class="contacts_headings_01">
<div class="contacts_checkbox_01"><input name="contact_id[]" id="contact_id" type="checkbox"  value="'.$row['contact_id'].'" style="margin-top:0px ; margin-left:-3px;" /></div>
<div class="contacts_firstname_01_contacts">'.$row['firstname'].'</div>
<div class="contacts_firstname_01">'.$row['lastname'].'</div>
<div class="contacts_firstname_01">'.$row['company'].'</div>
</div>';
} 

当我查看页面源时,它显示它在页面顶部打印数据。这种情况发生在Firefox,Chrome和Internet Explorer中。

1 个答案:

答案 0 :(得分:2)

我看到的是,您希望?action=contactsandgroups的此输出填充在div#displayList中。如果是这种情况,请尝试以下方法:

<head>部分添加此内容:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
    function getUserList()
    {
        ajaxDisplay = $("#displayList");
        ajaxDisplay.load('?action=contactsandgroups');
    }
</script>

尝试一下,看看它是否有效。如果没有,请将HTML代码发送给您,您可以在其中调用该函数。