椰子树
2015-06-05 14:54
我将模板文件引入主文件中,同时模板文件的js地址以及AJAX获取数据的php文件地址是根据主文件的地址来写的相对地址,但是却没办法将AJAX的内容写入静态的html文件中,不过我在主文件中使用ob_get_contents()是可以显示AJAX数据的,这是为什么
以下三个文件都放在同一个目录里
主文件代码:
<?php echo "设置时间触发获取静态页面"; if(file_exists("index.html")&&time()-filemtime("index.html")<30) { require("index.html"); }else{ $mysqli=new mysqli("localhost","root",'',"test"); $sql="select * from text"; $res=$mysqli->query($sql); $data=array(); while($row=$res->fetch_assoc()) { $data[]=$row; } ob_start(); require("index.php"); echo file_put_contents("index.html",ob_get_contents()); ob_end_clean(); } 模板文件: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="jquery-1.11.2.min.js"></script> <title>无标题文档</title> </head> <body> <table style="border:solid 1px;"> <tr><th>id</th><th>name</th><th>age</th></tr> <?php foreach($data as $v){?> <tr><td><?php echo $v['id']?></td><td><?php echo $v['name']?></td><td><?php echo $v['age']?></td></tr> <?php }?> </table> <table id="ajax"> </table> <script> $.ajax({ type :"GET", url :"ajax.php", datatype: "json", success:function(msg) { msg=eval("("+msg+")"); if(msg.status=="success") { html=''; $.each(msg.data,function(key,val){ html+="<tr><td>"+val.id+"</td><td>"+val.name+"</td><td>"+val.num+"</td><td>"+val.location+"</td></tr>"; }); $("#ajax").html(html); } }, error:function() { alert("hehehhe"); } }); </script> </body> </html> ajax的数据来源:ajax.php <?php $mysqli=new MySQLi("localhost","root",'',"test"); if($mysqli) $connect=1; else $connect=0; $sql="select store.id,store.name,store.num,company.location from store inner join company on store.id=company.id order by store.num desc limit 6"; $res=$mysqli->query($sql); $data=array(); while($row=$res->fetch_assoc()) { $data[]=$row; } $message=array(); if(!empty($data)) { $message=array("mysqliConnect"=>$connect,"status"=>"success","data"=>$data); echo json_encode($message); }else echo "fail";
还没有人回答问题,可以看看其他问题
PHP实现页面静态化
55589 学习 · 115 问题
相似问题