需要帮助-用数据库中的数据替换DIV内容而不刷新(使用-jquery、hmlhttp、CI)


Need help - Replacing DIV content with data from DB without refresh (using - jquery, hmlhttp, CI)

我又来了。我正试图用从数据库中检索到的数据来更改部门的内容。这必须在不重新加载页面的情况下完成,因此我使用xmlhttp和javascript。该网站正在CodeIgniter上运行。以下是代码及其简短摘要。我一直在学习本教程,但由于某种原因,当我单击按钮时,什么都没有发生。

查看*exampleInstallFolder/htdocs/application/obs/views/test_v.php*

<!DOCTYPE html>
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
      $( "#next_btn" ).click(function() {
      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("listA").innerHTML=xmlhttp.responseText;
          }
        }
      xmlhttp.open("GET","getnext5.php?q="true);
      xmlhttp.send();
      })
    </script>
</head>
<body>
  <div id="listA">
  </div>
  <div id="next_btn">
  </div>
</body>
</html>

现在,当我的按钮被点击时,我会触发该功能。该函数位于视图的头部,。我不确定带查询的文件(getnext5.php)应该存储在哪里。现在它在views文件夹中。文件的链接是这个xmlhttp.open("GET","getnext5.php?q="true);,我应该以某种方式更改它吗?

函数exampleInstallFolder/htdocs/application/obs/views/getnext5.php

<?php
$con = mysqli_connect('localhost','root','root','obs2');
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }
mysqli_select_db($con,"obs2");
$sql="SELECT * FROM user WHERE id > 5";
$result = mysqli_query($con,$sql);
echo "<table>";
  while($row = mysqli_fetch_array($result))
  {
        echo "<a style="display:block" href="base_url('core/detail/'.$row[id])">";
            echo "<div id="suggested" onmouseover="" style="cursor: pointer;">";
                echo "<div id="info">";
                    echo "<div id="info_center">";
                        echo "<p>" . $row['name'] . "</p>";
                    echo "</div>";
                echo "</div>";
                echo "<div class="mosaic-block fade">";
                    echo "<a href="base_url('core/detail/'.$row[id])" class="mosaic-overlay">";
                        echo '<div class="details">';
                            echo "<p>" . $row['summary'] . "</p>";
                        echo "</div>";
                    echo "</a>";
                    echo "<div class="mosaic-backdrop"><img src="www.puu.sh/5DSWj.jpg">";
                    echo "</div>";
                echo "</div>";
                echo "<div id="info">";
                    echo "<div id="info_center">";
                        echo "<p>" . "Rating: 7.7" . "</p>";
                    echo "</div>";
                echo "</div>";
            echo "</div>";
        echo "</a>";   
  }
echo "</table>";
?>

在这个文件中,我建立了与数据库的连接,运行查询,将行存储在一个名为$pages的数组中,然后使用while循环对结果进行样式设置。样式会被呼应,因为它随后由xmlhttp请求返回,并显示在listA分区中,替换原始内容。我不确定回声写得对不对。

我愿意接受任何建议。我一整天都在努力解决这个问题,但没有成功。感谢大家的阅读,最重要的是感谢你们的回复。

您没有正确连接get参数。

xmlhttp.open("GET","getnext5.php?q="true);

q="true<--true是布尔值!

试着这样打开:

xmlhttp.open("GET","getnext5.php?q=true");

如果确实要正确连接,请执行"q="+variable

您可以使用jquery ajax api,然后在成功函数中,您可以用从数据库检索的值替换div内容。