PHP скрипт эхо не выполняется

0

Я печатаю очень простой JavaScript с использованием PHP, который не выполняется. Если я распечатаю данные, я вижу следующий скрипт (точно по мере необходимости) в конце файла HTML:

    <script type="text/javascript">
    document.getElementById("message").innerText="Email already exists";
    </script>

Я также пробовал использовать innerHTML="Email already exists"; ,

Это напечатано на PHP как таковое:

    echo "<script type=\"text/javascript\">
        document.getElementById(\"message\").innerText=\"Email already exists\";
        </script> ";

В моем HTML у меня есть элемент, который имеет сообщение ID:. Это выглядит так:

    <h3 id="message"> </h3>

Я ожидаю, что в h3 "электронная почта уже существует", однако этого не происходит. JavaScript не выполняется. Если я использую один и тот же код JavaScript, но поместите его вперед или по запросу "onclick", код работает.

Одна вещь, которая может быть актуальной: я заметил, что JavaScript печатается после закрытия тега HTML.

Как мне получить код JavaScript для выполнения после того, как он был отправлен в HTML? Я прочитал несколько потоков, в которых говорилось, что он должен просто запускаться, однако мой не делает. Я пробовал около 50 различных исправлений, ни одна из которых не работала.

Код: http://ideone.com/dmR42O

  • 1
    Все зависит от того, где вы видите html относительно <div> который вы пытаетесь изменить. Помните, что теги <script> выполняются по мере их появления. Если <script> появляется ДО <div> , div еще не будет существовать в dom, и getElementById завершится ошибкой.
  • 0
    Я использовал файл PHP, в котором есть HTML-код. HTML-код лежит ДО PHP-кода, поэтому страница отображается, и ID идентифицируется браузером. Только когда документ будет готов, PHP-код будет запущен (что также требует отправки формы)
Показать ещё 6 комментариев
Теги:
echo

2 ответа

1

Вы упомянули об этом:

Одна вещь, которая может быть актуальной. Я заметил, что javascript напечатан ПОСЛЕ закрытия html-тега (the).

Это очень актуально. Любой Javascript должен содержаться в элементе <html> (до </html>). Но, убедитесь, что Javascript появляется после <h3>. Javascript будет работать, когда он встретится, как сказал Марк в комментарии выше.

Если Javascript должен быть до этого, сделайте следующее:

window.onload=function(){
    document.getElementById("message").innerText="Email already exists";
};
  • 0
    Большинство браузеров фактически запускают JavaScript, даже если он находится вне тега </ html>. НЕ ДЕЛАЙТЕ ЭТОГО. Но оно побежит.
  • 0
    Привет и спасибо за ваш ответ. я заключил весь код в теги <html>, как и предлагалось, однако проблема остается. Код печатается (теперь перед закрывающим тегом html), да еще не выполняется.
Показать ещё 9 комментариев
0

Попробуйте вот так:

echo '<h3 id="message"> Email already exists!</h3>';

<!DOCTYPE html>
<html>
<body>
<form id="submitform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">       
    <input id="logIn_email_input" name="email" type="text" placeholder="Enter e-mail address" autocomplete="off">       
    <input id="logIn_password_input" name="password" type="password" placeholder="Enter password" autocomplete="off">       
    <input id="logIn_submit" type="submit" name="logIn_submit">SIGN UP</button>
</form>

<?php 
$query = mysql_query("SELECT userid FROM users WHERE email = '". $email ."'"); 

if (mysql_num_rows($query) > 0) {
    echo '<h3 id="message"> Email already exists!</h3>';
}
?>
<body>
</html>

У вас было много проблем (возможно, опечатки?)

  • action="<?php echo $PHP_SELF;?>" должно быть action="<?php echo $_SERVER['PHP_SELF'];?>"
  • <button id="logIn_submit" должен быть <input id="logIn_submit" type="submit" name="logIn_submit">
  • <? php <? php имеет дополнительное пространство, которое должно быть <?php
  • If statement отсутствует закрывающая скобка }
  • Нет тегов <body>
  • 0
    Я попробовал это, и я вижу код, напечатанный в console.log (data), однако новый элемент <h3> отсутствует на странице элементов. Другими словами, он печатается, но игнорируется HTML-страницей.
  • 0
    @Bdevelle вы можете опубликовать больше кода, то, что вы показали, выглядит хорошо. Покажите, где вы используете это в своем HTML
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню