PHP代码不会在脚本标记中执行

时间:2015-01-06 19:34:19

标签: javascript php jquery html

我可以将php代码放在我的php文件中的任何地方,但是如果我把php代码放在标签中它根本就行不通....我做错了什么?

<html>   
<head>
<?php
    $hello3 = 'hello3';
    echo 'hello1';
?>
    <script>
    <?php echo 'hello2'; ?>
        $(document).ready(function(){
            $("#target").click(function(){
                alert('hello');
            });
        });
    </script>
    <?php echo $hello3; ?>
</head>
<body>
    <button type="button" id="target">Press Me</button>
</body>
</html>

当我执行此页面时,我会在屏幕上显示:

hello1hello3 (then the button) 

脚本标签中的回声根本不会执行......

3 个答案:

答案 0 :(得分:2)

这是代码的HTML等价物:

<html>   
<head>
hello1
    <script>
    hello2
        $(document).ready(function(){
            $("#target").click(function(){
                alert('hello');
            });
        });
    </script>
    hello3
</head>
<body>
    <button type="button" id="target">Press Me</button>
</body>
</html>

您的输出有什么问题?

答案 1 :(得分:0)

是的,这确实执行了。但是除非通过函数或方法完成,否则<script>标记中的项目不会显示在屏幕上。您在JavaScript中只有hello2;这样的项目。例如,你会期望看到你是否有这个:

<script>
    hello1; 
</script>

嗯,屏幕上什么都没有。您只是创建未定义的全局变量,那么会发生什么?尝试添加一些代码,例如一个简单的警报:

<script>
    <?php echo 'alert("hello")'; ?>
</script>   

在编写PHP时,您echo的项目与您正常编写JavaScript的项目完全相同。所以编写JavaScript的规则也适用。 PHP执行后,上面的项目看起来像这样:

<script>
    alert("hello")
</script>  

答案 2 :(得分:0)

在php元素中,PHP的输出如下所示:

    hello2        $(document).ready(function(){
            $("#target").click(function(){
                alert('hello');
            });
        });

它立即失败(带有引用错误),因为您尝试使用变量hello2而未声明它。

如果不是原因,它会因为你尝试使用变量$而没有声明它(即通过在脚本中包含jQuery)而失败。

PHP正在执行。您只是编写PHP,生成完全破解的JavaScript。