如何在php中插入javascript?

sno*_*841 1 javascript php

我正在尝试将javascript插入div.所有这些都在php文档中.

当我的子div加载时,我试图让div淡入视图.父div具有'subemail'的id(这是隐藏的)显示id为'error'的子div然后它应该淡入上面的div.

以下是我正在尝试加载的脚本但是出现错误意外T_STRING,期待','或';'.

<script type="text/javascript">
  $(function(){$('div#subemail').fadeIn('slow');});
</script>
Run Code Online (Sandbox Code Playgroud)

PHP文档:

    if (empty($_POST['sub_name'])) {
        $errors[] = 'Please type in your name';
    } else {
        $sub_name = strip_tags($_POST['sub_name']);
    }

    if (filter_input(INPUT_POST, 'sub_email', FILTER_VALIDATE_EMAIL)) {
        $sub_email = $_POST['sub_email'];
    } else {
        $errors[] = 'Please type in a valid email'; 
    }

    if ($errors) {
        echo '<div class="errors">';
                    echo '<script type="text/javascript">';
                    echo '$(function(){$('div#subemail').fadeIn('slow');});';
                    echo '</script>';


        foreach ($errors as $error) {
            echo '<p class="error">- ' . $error . '</p>';
        }
        echo '</div>';

    }
Run Code Online (Sandbox Code Playgroud)

mea*_*gar 10

你需要使用反斜杠来转义引号:

echo '$(function(){$(\'div#subemail\').fadeIn(\'slow\');});';
Run Code Online (Sandbox Code Playgroud)

问题是你用第一个字符串打开一个字符串',然后关闭它'div#....而不是在线的末尾关闭它.大多数语言使用反斜杠来表示作为字符串一部分的引号,而不是终止字符串.

你也可以切换上下文,我认为这些内容可以大大清理; 只需确保通过将以下内容移动到某种模板文件来分离您的视图/控制器逻辑:

<? if ($errors) { ?>
  <div class="errors">
    <script type="text/javascript">
      $(function() { $('div#subemail').fadeIn('slow'); });
    </script>
    <? foreach ($errors as $error) { ?>
      <p class="error"><?= $error ?></p>
    <? } ?>
  </div>
<? } ?>
Run Code Online (Sandbox Code Playgroud)