Php 写入文本文件不会';除非我刷新,否则我不会更新
我试图允许用户下载带有坐标信息的xml文件。我使用以下方法创建下载按钮:Php 写入文本文件不会';除非我刷新,否则我不会更新,php,html,mysql,Php,Html,Mysql,我试图允许用户下载带有坐标信息的xml文件。我使用以下方法创建下载按钮: <a download href='XML_Data.xml'><input type='button' value='XML Data' onclick='loadXML()'></a> 下面是我的loadXML()函数: function loadXML() { <?php //clear the file file_put_con
<a download href='XML_Data.xml'><input type='button' value='XML Data' onclick='loadXML()'></a>
下面是我的loadXML()函数:
function loadXML()
{
<?php
//clear the file
file_put_contents("XML_Data.xml", "");
$handle = fopen("XML_Data.xml", "w+");
fwrite($handle, "<ANNOTATIONS>\r\n");
//markers
$sql = "SELECT coords, color, annot_type FROM cbmarker.annot_test WHERE
project_id='$pid'
AND userid=" . $_SESSION['Id'] .
" AND image=\"" . $pic .
"\" AND annot_type='marker'
ORDER BY id ASC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$markerX = $row['coords'];
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$markerY = $row['coords'];
fwrite($handle, " <annotation annot_type='marker' color='" . $row['color'] . "' X='" . $markerX . "' Y='" . $markerY . "' />\r\n");
}
fwrite($handle, "</ANNOTATIONS>\r\n");
fclose($handle);
?>
函数loadXML()
{
发生的情况如下:
您请求显示JavaScript代码的页面
由于该页面的某些部分包含PHP代码,因此该PHP代码在服务器上运行,并将呈现的HTML(包括JavaScript)返回到浏览器
呈现的HTML随后在浏览器中呈现。作为页面一部分下载的JavaScript不会更改,因为PHP代码不会在浏览器中重新执行。执行该代码只是为了呈现浏览器中现在的HTML+JavaScript
刷新页面时,web浏览器会再次查询服务器,并通过在服务器上再次运行PHP生成新的JavaScript
如果希望页面在不完全刷新的情况下自动显示新项目,可以使用计时器定期向服务器返回Ajax查询,以查找数据更新。停止使用不推荐的MySQL扩展。从迁移到MySQLi或PDO开始。您对PHP的工作原理有一个基本的误解。它在s上运行当你请求页面时,你不能将PHP代码放入Javascript函数中。你需要使用AJAX来实现这一点。