这是一个非常简单的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输出(屏幕截图)
最佳答案
发生这种情况是因为012012
被视为int。但是,由于它以0
开头,因此JavaScript将其视为基数8(八进制),因此将其转换为5130
。
您需要将012012
用引号引起来,因此JavaScript会将其视为字符串。另外,我建议仅使用PHP来回显所需的值,而不是整个函数调用。使调试稍微容易一些。
<body onload="myfunc1('<?php echo $x;?>')">