【问题标题】:IE8 is not displaying php echoIE8 不显示 php echo
【发布时间】:2015-12-08 07:38:24
【问题描述】:

当点击开始按钮时,我正在使用以下代码在文本字段中显示当前系统时间。此代码在 FireFox 和 Chrome 中运行良好,但 IE 8 不显示点击开始按钮时的时间和日期。如果我点击提交按钮,它会起作用。

请告知我在这里做错了什么:

    <form name="form1" action='' method='post'>
    <table>
      <tr>
            <th>
            <p>Vendor was contacted at:</p>
            <button name="time" >Start</button><br>
            <?php
            if (isset($_POST['start']))
            {
            $date_start = date('m-d-Y H:i:s');;
            $_SESSION['start'] = $date_start;
            }
            ?>
            <br>
            <input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>"
            <br>
            </th>
    </tr>
     <tr>
        <th>
           <br><input type='submit' name='submit' value='Submit'><br>
        </th>
       </tr>
    </table>
    </form>

【问题讨论】:

  • IE 8?对不起,兄弟:(
  • 此类问题最终会被标记/删除。 Stack 的人认为这是一个错字/语法错误。
  • @Fred,感谢您的回复。您在哪里看到拼写错误/语法错误。请指出这一点。
  • 参加游览,在 Stack 中漫步;它在里面。
  • 告诉你什么:将错误报告添加到文件顶部,紧跟在打开 PHP 标记之后,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,然后回来告诉我们你的得到。另外,查看您的 HTML 源代码。它和任何工具一样好。你甚至可以在那里看到通知。

标签: php html internet-explorer internet-explorer-8


【解决方案1】:

您的 HTML 无效。您忘记了&lt;input 上的&gt;

<input name="start" type="text" class="textfield" value="<?php echo $_SESSION['start']; ?>">

【讨论】:

  • 感谢您的回复。但这没有帮助。据我所知, .
  • 你可以把马牵到水边,但你不能让他喝@Fred-ii-
  • @RiggsFolly 评论背后的讽刺太他妈的高了。
  • @HawasKaPujaari 这不是讽刺,而是所谓的“幽默”。
  • @HawasKaPujaari George Carlin 以此成就了伟大的职业生涯 ;-) 他是所有人中最好的。
【解决方案2】:
  • 请完整阅读我的回答,包括“脚注”。

除了关于输入缺少结束字符的其他答案;不知道会话是否已经开始,正在提交以下答案。

首先,您在 cmets 中说它不会抛出任何错误/通知。

“@Fred-ii-,你建议的代码没有显示任何错误。- adminhaq 25 分钟前”

如果您没有启动会话,则说明您没有正确设置错误报告或未配置为“显示”通知。

session_start(); 需要使用会话驻留在所有文件中。如果您试图将数据传递到另一个页面,那么这也不清楚。

输入本身应该包含类似于:

<b>Notice</b>: Undefined variable: _SESSION in <b>/var/usr/httdocs/folder/file.php</b> on line <b>(line number)</b>

对于value="&lt;?php echo $_SESSION['start']; ?&gt;",最好使用三元运算符。

即:value="&lt;?php echo !empty($_SESSION['start']) ? $_SESSION['start'] : ""; ?&gt;"

完全测试的代码:

<?php 

error_reporting(E_ALL);
ini_set('display_errors', 1);

session_start();

?>

<form name="form1" action='' method='post'>
<table>
  <tr>
        <th>
        <p>Vendor was contacted at:</p>
        <button name="time" >Start</button><br>
        <?php
        if (isset($_POST['start']))
        {
        $date_start = date('m-d-Y H:i:s');

        $_SESSION['start'] = $date_start;
        }
        ?>
        <br>

        <input name="start" type="text" class="textfield" value="<?php echo !empty($_SESSION['start']) ? $_SESSION['start'] : ""; ?>">

        <br>
        </th>
</tr>
 <tr>
    <th>
       <br><input type='submit' name='submit' value='Submit'><br>
    </th>
   </tr>
</table>
</form>

旁注:表单不包含 name 属性,因此您可以安全地将其从声明中删除。

  • 使用我上面的示例代码重新加载您的文件而不重新提交,您将看到输入将自动填充。

将error reporting 添加到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:显示错误应该只在暂存阶段完成,而不是在生产阶段。


脚注:

您可能还需要从以下位置更改按钮:

<button name="time" >Start</button>

到

<button name="time" type="submit">Start</button>

这是最有可能的问题,因为我只记得我曾经在使用 IE 8 时也遇到过同样的问题。

旁注:IE 是一个非常挑剔的浏览器。它甚至可能不喜欢&lt;button name="time" &gt; 中的空间,添加type="submit" 是最可能的解决方案。

  • 记得查看您的 HTML 源代码;在调试方面,它是一款出色的工具。

【讨论】:

  • 非常感谢您的帮助。我最初在这里分享的代码只是我的 php 表单的一小部分。我正在尝试收集数据,以查看我的供应商需要多长时间来响应我们的任何请求。在我的表单中,我添加了一个开始按钮,该按钮捕获当前时间并将其放入输入字段中。提交按钮获取所有表单信息并将其放入 excel 文件中。我的原始代码适用于 Firefox、chrome 等,但在 IE 中除外。单击开始时,我什么也看不到,但是当我点击提交时,输入字段会被填充。我使用了你的代码,它仍然在做同样的事情。
  • 你太棒了!!!!太感谢了。按照您的脚注解决了我的问题。我按照你的建议添加了 type="submit"。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
相关资源
最近更新 更多