【发布时间】:2020-08-21 08:32:31
【问题描述】:
我在重新加载 div 中的内容时遇到了问题,我这辈子都不明白为什么。下面的代码在一个页面上工作,但由于某种原因在另一个页面上不起作用,尽管与加载的文件完全相同。
每次发帖后我都需要手动刷新页面才能看到最新数据。
page1.php
<form method="post">
<button id="SendLogsBtn" name="SendLogsBtn" class="CheckConnectionBtn" button onclick="ShowWaiting()">Start</button>
</form>
<div id="mydiv" style="display:none;">
<p> <?php include('file1.log'); ?> </p>
</div>
<?php include 'page1include.php'; ?>
page1inclulde.php
if (isset($_POST['SendLogsBtn'])) {
$output = shell_exec("/myscript.sh");
$_SESSION["mysession"] = "SET";
}
if (isset($_SESSION['mysession'])) {
echo '<script>$( "#mydiv" ).load( "file1.log" );</script>';
echo '<script>document.getElementById("mydiv").style.display = "block";</script>';
}
div 可以很好地取消隐藏,但无论出于何种原因,file1.log 都不会重新加载,因此它会显示脚本执行之前的旧数据(脚本输出到 file1.log)。
我只想在我的脚本完成后重新加载 file1.log。
我做错了什么?以可靠的方式实现我想要的最佳方式是什么?
【问题讨论】:
-
您是否尝试将表单更改为
<form method="post"> <input type='hidden' name="SendLogsBtn"/> <button id="SendLogsBtn" name="SendLogsBtn" class="CheckConnectionBtn" onclick="ShowWaiting()">Start</button> </form> -
不幸的是,所做的只是在单击按钮后将其隐藏。问题不在于按钮,而在于重新加载 file1.log。
-
<script>$( "#mydiv" ).load( "file1.log" );</script>可能是问题所在。建议加<script>setTimeout(function(){location.reload();},500)</script> -
我能问一下为什么你用 Javascript 加载 file1.log 以及为什么你干脆不只是执行 /myscript.sh 之前 你包含 file1.log 和 php?跨度>
-
脚本仅在用户单击按钮后执行。我对 php 和 javascript 还很陌生,所以不知道在单击按钮后如何加载它。
标签: javascript php jquery