这是一个非常简单的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;?>')">

10-05 21:08
查看更多