为了账号安全,请及时绑定邮箱和手机立即绑定

无法在JS内添加PHP

无法在JS内添加PHP

POPMUISE 2021-05-18 17:27:21
我正在尝试添加一个PHP代码以在JavaScript内部回显文本,但是当我尝试该代码时却没有回显该文本,因此它回显0<script>window.onload = function(){    <?php if (empty($dark_mode)){ echo '$('*').toggleClass("light") document.getElementById("*").classList.remove("dark");';}else{ echo '$('*').toggleClass("light")  document.getElementById("*").classList.remove("light");';} ?>};</script>
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您的引号存在语法错误-arent逸出了多个单引号,因此PHP突然出现意外情况*。


<script>

window.onload = function(){

    <?php if (empty($dark_mode)){ echo '$('*').toggleClass("light") 

 // -----------------------------------^^^^^^^ See the mismatch of quotes here

document.getElementById("*").classList.remove("dark");';}else{ echo '$('*').toggleClass("light")  document.getElementById("*").classList.remove("light");';} ?>

};

</script>

您可以通过几种方法解决此问题,一种方法是使用双引号或转义单引号,但是您可以通过在PHP中设置一个变量并使用该变量而不是在条件内执行相同的操作来简化此操作。


<script>

window.onload = function(){

    // Remove both dark and light

    $("*").removeClass("dark light");

    // Add current mode based on $dark_mode in PHP

    $("*").addClass("<?php echo empty($dark_mode) ? 'light' : 'dark'; ?>");

};

</script>


查看完整回答
反对 回复 2021-05-27
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我希望Heredoc语法可以回显多行动态JavaScript / jQuery代码。您无需转义任何引号,并且更容易阅读,尤其是当您有数十行代码时。


$if_script_code = <<<if_script

Here goes the script code 

    for better readability

    and without the need to

    escape a ton of quotes.

if_script;


$else_script_code = <<<else_script

more script code

here...

else_script;


if ($my_condition === TRUE) {

    $script_code = $if_script_code;

    }

else {

    $script_code = $else_script_code;

    }

?>

<script>

window.onload = function(){<?=$script_code?>;}

</script>


查看完整回答
反对 回复 2021-05-27
?
弑天下

TA贡献1818条经验 获得超8个赞

我过去也有同样的问题,我也确实使用php来用php vars打印所有的javascript,在您的情况下,它很可能是:


     <?php

     echo "<script>";

     echo "window.onload = function(){";

     if (empty($dark_mode)){

              echo "$('*').toggleClass('light') document.getElementById('*').classList.remove('dark');";

     }else{ 

     echo "$('*').toggleClass('light') document.getElementById('*').classList.remove('light');";

     }

回显“”;?>


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信