这是一个非常简单的PHP页面,其中包含一个javascript函数。我对输出的看法有所不同。我不能理解为什么它会这样做。
在下面的代码中,x回显为012012,但是当我将其传递给javascript函数并在innerHTML中显示它时,它以不同的方式显示为5130 ??!!
有人能帮上忙吗?
<?php
$x= date("mY");
echo $x;
?>
<html>
<head>
<script>
function myfunc1(y)
{
div1 = document.getElementById("mydiv1")
div1.innerHTML = y;
}
</script>
</head>
<body <?php echo "onload='myfunc1(".$x.")'>";?>
<div id="mydiv1" style="background:#efefef;border:1px solid green;height:100px;width:100px;text-align:center">
</div>
</body>
</html>HTML输出
012012<html>
<head>
<script>
function myfunc1(y)
{
div1 = document.getElementById("mydiv1")
div1.innerHTML = y;
}
</script>
</head>
<body onload='myfunc1(012012)'> <div id="mydiv1" style="background:#efefef;border:1px solid green;height:100px;width:100px;text-align:center">
</div>
</body>
</html>HTML输出(屏幕截图)

发布于 2012-01-05 23:19:19
之所以会发生这种情况,是因为012012被视为一个整数。但是,由于它以0开头,JavaScript将其视为基数8(八进制),因此将其转换为5130。
您需要用引号将012012括起来,因此JavaScript将其视为字符串。另外,我建议只使用PHP回显您需要的值,而不是整个函数调用。使调试变得稍微容易一些。
<body onload="myfunc1('<?php echo $x;?>')">发布于 2012-01-05 23:16:37
因为以0为前缀的数字被javascript视为八进制。
发布于 2012-01-05 23:29:51
使用Smarty,是一个PHP框架模板!
代码:
<?php
$foo = date('Y');
?>简单打印代码
<body onload="myFunctionJS('<?php echo $foo;?>')">简单标记PHP(不推荐)
<body onload="myFunctionJS('<?=$foo;?>')">使用SMARTY模板框架
智能模板框架(PHP代码):智能模板框架(模板代码):
https://stackoverflow.com/questions/8744796
复制相似问题