Я пытаюсь вставить javascript в div. Все это находится в документе php.
Я пытаюсь получить div, чтобы исчезнуть, когда он загружен дочерним div. Родительский div имел идентификатор «subemail» (это скрыто). Отображается дочерний div с id 'error', который должен исчезать в вышеуказанном 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#...
. а не закрывать его в конце строки. Большинство языков используют обратную косую черту для обозначения цитаты, которая является частью строки, а не для завершения строки.
Вы также можете переключать контексты, которые, я думаю, резко очищают вещи; просто отделите логику просмотра / контроллера, переместив ниже файл шаблона:
<? 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> <? } ?>
альтернативно, вы можете написать
echo "$(function(){$('div#subemail').fadeIn('slow');});";
echo "$(function(){$('div#subemail').fadeIn('slow');});";