0

我在 PHP 中显示 JS 代码时遇到问题 我的代码是

<?php
    if($result)
    {
        echo '<script language="javascript">';
        echo "$('#Err').hide()</script>";
    }
    else
    {
        echo '<script language="javascript">';
        echo "$('#Err').show()</script>";
    }
?>

我正在使用 XAMPP 运行代码当我运行此代码时它不会显示我不知道是什么问题请告诉我谢谢!

4

5 回答 5

2

您必须$按如下方式转义该标志:

<?php
    if($result)
    {
        echo '<script language="javascript">';
        echo "\$('#Err').hide()</script>";
    }
    else
    {
        echo '<script language="javascript">';
        echo "\$('#Err').show()</script>";
    }
?>
于 2012-05-05T06:12:33.437 回答
0

使用单引号,您的双引号将 $('#Err') 呈现为 PHP 变量

<?php
    if($result)
    {
        echo '<script language="javascript">';
        echo '$(\'#Err\').hide()</script>';
    }
    else
    {
        echo '<script language="javascript">';
        echo '$(\'#Err\').show()</script>';
    }
?>
于 2012-05-05T06:12:06.207 回答
0
<?php
    if($result)
    {
        echo '<script type="text/javascript" language="javascript">
             $("#Err").hide()</script>';
    }
    else
    {
        echo '<script type="text/javascript" language="javascript">
              $("#Err").show()</script>';
    }
?>
于 2012-05-05T06:17:07.413 回答
0

这种方式更容易理解并且使用更少的处理:

<!-- this is your php script with your html layout -->

<script type="text/javascript">
    <?php if($result === true): ?>
        $("#Err").hide();
    <?php else: ?>
        $("#Err").show();
    <?php endif; ?>
</script>

尽量不要使用回声。这是 PHP 的一个好习惯。如果你真的想提高你的 php 生产力,我强烈推荐Codeigniter 框架。试一试 =)。

于 2012-05-05T06:18:43.213 回答
0

您需要进行一些调试,查看生成的 HTML 的源代码:

<?php
    // debug code:
    var_dump($result); die('This place has been reached');

    // normal code:
    printf("<script language=\"javascript\">\n\$('#Err').%s()\n</script>"
           , $result ? 'hide' : 'show');
?>

When you execute this, things will go wrong, but you can see what $result contains so to debug your script. If it does not display that inside the HTML source, it means that your code is not executed at all and your problem lies somewhere else.

于 2012-05-05T08:15:24.290 回答