在Javascript代码中的PHP条件

问题描述 投票:2回答:10

我需要在一些javascript代码中添加一个PHP条件,像这样。

<script>
$(document).ready(function() {

<?php if (some condition) {
   $('#myID').show();
}

});
</script>

这可能吗?

php javascript jquery
10个回答
3
投票

试试这个

<?php if (some condition): ?>
$('#myID').show();
<?php endif; ?>

3
投票

你可以把你的脚本放在将渲染你的html的PHP文件中,然后用PHP检查条件。

例如index.php

<html><head></head>
<body>
Your webpage content here

<script type="text/javascript">
    $(document).ready(function () {
        <?php if(condition) : ?>
            $('#myID').show();
        <?php else : ?>
            $('#mySecondID').show();
        <?php endif; ?>
    });
</script>

</body>
</html>

如果你想把你的JS放在一个单独的文件中,你可以这样做,并在PHP文件中初始化一些变量,将渲染你的HTML(例如index.php或任何模板文件)的方式与上述相同,这样你就可以从你的.js文件中读取它们。

例如:index.php

<html><head></head>
<body>
Your webpage content here
<?php
  $foo = 'foo';
  $bar = 'bar';
?>
<script type="text/javascript">
        var foo = '<?php echo (condition) ? $foo : $bar ?>'; 
</script>

</body>
</html>

init.js

$(document).ready(function () {
    if(foo == 'foo')
        $('#myID').show();
});

2
投票

当然,如果你在哪里做你的JavaScript是由PHP执行。

<script type="text/javascript">
$(document).ready(function() {

<?php if(some condition) { ?>
   $('#myID').show();
<?php } ?>

});
</script>

然而,如果你想动态地做这件事,用Ajax来代替会是一个更好更快的解决方案。


2
投票

当Php在服务器端执行时,它要输出一些东西。所以当页面加载时,你不会看到php代码。

你应该写你的php代码,当php脚本被执行时,它会呈现JS if条件。

就像这样。

if (something == <?php outputSomeThingToCompare ?>) {
   $('#myID').show();
}

或者你也可以试试这个。

<?php if(some condition) { ?>
   $('#myID').show();
<?php } ?>

1
投票

是和不是。

记住,PHP会处理你的页面 服务器端. 所以,如果你想动态地改变JavaScript中的内容,那么是的,你可以这样做。

如果你想让PHP在客户端处理JavaScript中的变量,那么不,这是不可能的。

同样,浏览器对PHP没有任何了解。


1
投票

是的,这是有可能的,但是你的 <?php 指令似乎没有正确关闭。闭合的 ?> ?

如果你认为你需要这个。

<script>
    $(document).ready(function() {  
        <?php 
        if (some condition) { 
            echo('$("#myID").show();');
        } 
        ?>
    });                             //$(document).ready
</script>

0
投票

取决于文件扩展名。

如果文件扩展名是 php (或其他一些你可能已经把一起运行php代码使用.htaccss规则或apache配置。)就可以了,不是别的。


0
投票

当然,只要把JavaScript呼应出来就可以了。

<script>
$(document).ready(function() {

<?php if (some condition) {
   echo("$('#myID').show();");
}?>

});
</script>

0
投票

这是不可能的,因为JavaScript是在客户端编译的,但是php是在服务器上工作的。你可以把它改成这样......。

$string  = '<script>
$(document).ready(function() {';
if (some condition) {
$string .= '$('#myID').show();';
$string .= '}

});
</script>';';

如果发生错误,请将代码连接起来。

© www.soinside.com 2019 - 2024. All rights reserved.