Я печатаю очень простой 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 различных исправлений, ни одна из которых не работала.
Вы упомянули об этом:
Одна вещь, которая может быть актуальной. Я заметил, что javascript напечатан ПОСЛЕ закрытия html-тега (the).
Это очень актуально. Любой Javascript должен содержаться в элементе <html>
(до </html>
). Но, убедитесь, что Javascript появляется после <h3>
. Javascript будет работать, когда он встретится, как сказал Марк в комментарии выше.
Если Javascript должен быть до этого, сделайте следующее:
window.onload=function(){
document.getElementById("message").innerText="Email already exists";
};
Попробуйте вот так:
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>
<div>
который вы пытаетесь изменить. Помните, что теги<script>
выполняются по мере их появления. Если<script>
появляется ДО<div>
, div еще не будет существовать в dom, и getElementById завершится ошибкой.