【发布时间】:2015-07-26 22:27:49
【问题描述】:
我正在尝试实现一个计时器。我从 SO 帖子中学到了这个想法。
<?php
if(($_SERVER['REQUEST_METHOD'] === 'POST') && !empty($_POST['username']))
{
//secondsDiff is declared here
$remainingDay = floor($secondsDiff/60/60/24);
}
?>
这是我的 php 代码。我的 php、html 和 JS 代码在同一个页面中。我的 html 中有一个按钮。当用户点击html页面时,会调用一个Ajax函数
//url:"onlinetest.php",
//dataType: 'json',
beforeSend: function()
{
$(".startMyTest").off('click');
setCountDown();
}
它会调用 setCountDown() 方法,该方法在开头包含一行
var days = <?php echo $remainingDay; ?>;
当我运行该页面时,它在上面的行中显示[甚至在单击按钮之前]"expected expression, got '<'"。我的疑问是
为什么这个 php 变量在我触发按钮之前被替换。请让我知道如何解决这个问题或如何改变我的想法。
【问题讨论】:
-
看来您需要将文件重命名为
something.php -
是的,我的文件名为 testOnlineTest.php
-
如果您的
var days = ...行位于外部 javascript 文件中,这将不起作用,因为它不会通过 php 解析器运行。 -
php 在 server 上运行,then 生成的 html 和 javascript 被发送到客户端浏览器。然后浏览器呈现 html 并运行 javascript; php 已经完成,实际上 gone,在浏览器处理页面时不再“在页面中”。
-
@PatrickEvans 我已经提到所有脚本都在同一个文件中
标签: javascript php jquery html ajax