Подтвердить что ты не робот

Как написать код 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, это работает. Какая проблема в этом коде, есть ли какая-нибудь работа для этого

4b9b3361

Ответ 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).