Как написать код javascript внутри php
У меня есть форма, нажав кнопку отправки:
- Я хочу выполнить некоторую задачу в том же файле (задача db) И
- Я хочу, чтобы данные формы отправлялись в test.php с перенаправлением
вот мой код
<?php
if(isset($_POST['btn'])){
//do some task
?>
<script type="text/javascript">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();</script>
<?php
}
?>
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
но не может отправить форму, если я вызываю код javascript на onClick, это работает. Какая проблема в этом коде, есть ли какая-нибудь работа для этого
Ответы
Ответ 1
Просто выделите javascript внутри функции if
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
<?php
if(isset($_POST['btn'])){
echo "
<script type=\"text/javascript\">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();
</script>
";
}
?>
Ответ 2
Вы можете разместить все свои JS таким образом, чтобы он не выполнялся до того, как ваш HTML готов.
$(document).ready(function() {
// some code here
});
Помните, что это jQuery, поэтому включите его в раздел главы. Также см. Почему вы должны использовать jQuery, а не onload
Ответ 3
Во время выполнения script кнопка не существует, поскольку DOM не полностью загружена. Самым простым решением было бы разместить блок script после формы.
Другим решением было бы захватить событие window.onload
или использовать jQuery library (overkill, если у вас есть только этот JavaScript).