【问题标题】:Javascript & php reloading div content not workingJavascript和php重新加载div内容不起作用
【发布时间】: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。

我做错了什么?以可靠的方式实现我想要的最佳方式是什么?

【问题讨论】:

  • 您是否尝试将表单更改为&lt;form method="post"&gt; &lt;input type='hidden' name="SendLogsBtn"/&gt; &lt;button id="SendLogsBtn" name="SendLogsBtn" class="CheckConnectionBtn" onclick="ShowWaiting()"&gt;Start&lt;/button&gt; &lt;/form&gt;
  • 不幸的是,所做的只是在单击按钮后将其隐藏。问题不在于按钮,而在于重新加载 file1.log。
  • &lt;script&gt;$( "#mydiv" ).load( "file1.log" );&lt;/script&gt;可能是问题所在。建议加&lt;script&gt;setTimeout(function(){location.reload();},500)&lt;/script&gt;
  • 我能问一下为什么你用 Javascript 加载 file1.log 以及为什么你干脆不只是执行 /myscript.sh 之前 你包含 file1.log 和 php?跨度>
  • 脚本仅在用户单击按钮后执行。我对 php 和 javascript 还很陌生,所以不知道在单击按钮后如何加载它。

标签: javascript php jquery


【解决方案1】:

尝试在 shell_exec 之后几秒钟使用睡眠。也许是因为 PHP 没有等待 shell_exec 响应继续执行; 或者您在执行结束之前对您的 myscript.sh 做出响应,并且 PHP 认为脚本已结束并继续执行您的 PHP 脚本。

【讨论】:

    【解决方案2】:

    我发现了问题。这是(毫不奇怪)我自己的无能。我想我只是盯着自己的代码太久了,因为在休息一天后再次查看它后,我注意到我有两行代码都试图刷新同一个 div/文件。

    我认为这是导致问题的原因,因为在移除其中一条线后,它现在可以可靠地工作。虽然我不太明白为什么它以前不起作用。我希望 div 可以简单地重新加载两次,而不是根本不加载。

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 2011-11-05
      • 2015-02-27
      • 1970-01-01
      • 2015-10-18
      • 2012-05-31
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      相关资源
      最近更新 更多