我正在尝试将 javascript 插入到 div 中。所有这些都在一个 php 文档中。
我试图让一个 div 在它的子 div 加载时淡入视野。 父 div 的 id 为“subemail”(这是隐藏的) 显示 ID 为“error”的子 div,然后它应该在上面的 div 中淡出。
以下是我尝试加载的脚本,但出现意外错误 T_STRING,需要 ',' 或 ';'。
<script type="text/javascript">
$(function(){$('div#subemail').fadeIn('slow');});
</script>
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>';
}
最佳答案
您需要使用反斜杠转义引号:
echo '$(function(){$(\'div#subemail\').fadeIn(\'slow\');});';
问题是您用第一个 '
打开一个字符串,然后在 'div#...
处关闭它。而不是在行尾关闭它。大多数语言使用反斜杠来表示作为字符串一部分的引号,而不是终止字符串。
您还可以切换上下文,我认为这可以彻底清理;只需确保通过将以下内容移动到某种模板文件来分离您的 View / Controller 逻辑:
<? 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>
<? } ?>
关于php - 如何在 php 中插入 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5025326/