我正在尝试将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)