php重新加载动态网站后不回显sql表

时间:2017-10-03 10:53:09

标签: javascript php jquery mysql

你好,我想知道一个简单的动态网站,其中div.container的内容是由jquery动态加载的,因为我还需要更新url而不重新加载页面我使用这个脚本:

function ChangeUrl(page, url) {
  if (typeof (history.pushState) != "undefined") {
    var obj = { Page: page, Url: url };
    history.pushState(obj, obj.Page, obj.Url);
  }
}

$('ul.menu li a').on('click', function(){
    var page = $(this).attr('href');
    var pageUrl = page.split("/");
    pageUrl = pageUrl[1];

    $('.container').load(page + '.php', function(){
      //fadeout old content
      //fadein new content
    });

    ChangeUrl('Page1', '?page=' + page);

    return false;
})

这个脚本还允许我重新加载(cmd + r // ctrl + r)具有精确div内容的页面。 现在的问题是我写了一个特定的页面,在div.content里面我显示了一个sql表:

<div class="section-inner main-content page">
 <?php
   $pdo = new PDO('mysql:host=localhost;port=8889;dbname=Table','user','pass');
   $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $smtm = $pdo->query("SELECT item1, item2, item3,item4 FROM Table");
   echo '<table border="1">'."\n";
   while ($row = $smtm->fetch(PDO::FETCH_ASSOC)) {
     echo "<tr><td>";
     echo($row['item1']);
     echo("</td><td>");
     echo($row['item2']);
     echo("</td><td>");
     echo($row['item3']);
     echo("</td><td>");
     echo($row['item4']);
     echo("</td></tr>\n");
   }
   echo "</table>\n";
 ?>
</div>

但是当我从浏览器重新加载此页面时,表格不会显示。 有什么建议吗?

3 个答案:

答案 0 :(得分:0)

在php中你可以关闭php标签写html或js代码并通过打开php标签再次继续。等;

$row = mysql_fetch_array($query, MYSQL_ASSOC);    
while($mysql_num_rows($query)){
    ?>
    <table>
    <td><? echo $row[col1]; ?></td>
    <td><? echo $row[col2]; ?></td>
    <?
    }

and go on....

不,你可以通过动态地将这个php文件加载到yor div中来轻松地显示你的html代码。

$('div').load('url.....');

答案 1 :(得分:0)

如果您想重新加载以前加载的页面,请在刷新主页时将其保存在Cookie中

  function ChangeUrl(page, url) {
  if (typeof (history.pushState) != "undefined") {
    var obj = { Page: page, Url: url };
    history.pushState(obj, obj.Page, obj.Url);
  }
}

$('ul.menu li a').on('click', function(){
    var page = $(this).attr('href');
    // Save your cookie here
    document.cookie = "lastpage=" + page;
    var pageUrl = page.split("/");
    pageUrl = pageUrl[1];

    $('.container').load(page + '.php', function(){
      //fadeout old content
      //fadein new content
    });

    ChangeUrl('Page1', '?page=' + page);

    return false;
})
// When page is loaded
$(document).ready(function() {
    var lastpage = getCookie("lastpage");
    if (lastpage) {
        // Do the load stuff
    }
});

希望这有帮助!

您可以在那里找到getCookie和setCookie函数:https://www.w3schools.com/js/js_cookies.asp

答案 2 :(得分:0)

即使认为Cookie建议完美无缺,我也找到了解决问题的最简单方法(我发现here

我现在初始化pdo连接,包括pdo.php:

require_once (__DIR__.'/pdo.php');

我复制了:

$pdo = new PDO('mysql:host=localhost;port=8889;dbname=Table','user','pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

指定__DIR__以确保在加载页面时解决相对路径。

希望这会有所帮助