Как вы отображаете предупреждение JavaScript от PHP? - PullRequest
6 голосов
/ 23 октября 2009

Я не пишу код на PHP, но у меня есть эта форма, которую я вытащил из интернета, и она прекрасно работает:

Что я хотел бы сделать, так это добавить сюда некоторый код, который может запустить JS-скрипт, простое окно с предупреждением, говорящее: «Спасибо, форма отправлена» После того, как форма была получена этим файлом mailer.php.

<?php
if(isset($_POST['submit'])) {

$to = "myEmail@email.com";
$subject = "Form Tutorial";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

echo "Data has been submitted to $to!";
mail($to, $subject, $body);

} else {

echo "blarg!";

}
?>

Ответы [ 3 ]

19 голосов
/ 23 октября 2009

вместо:

echo "Data has been submitted to $to!";

только

echo '<script type="text/javascript">alert("Data has been submitted to ' . $to . '");</script>';
4 голосов
/ 23 октября 2009

Вы можете echo Javascript в блоке <script></script> в вашем PHP. Браузер выполнит его.

Так, например:

<?php
     echo "<script language='javascript'>alert('thanks!');</script>"; 
?>
2 голосов
/ 23 октября 2009

Вам просто нужно вывести HTML / JS. Примерно так:

<?php
    if(isset($_POST['submit'])) {
        $to = "mjleppan@hotmail.com";
        $subject = "Form Tutorial";
        $name_field = $_POST['name'];
        $email_field = $_POST['email'];
        $message = $_POST['message'];

        $body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

        mail($to, $subject, $body);
        echo "<script type=\"text/javascript\">alert('Thank you form is submitted');</script>";
    } else {
        echo "blarg!";
    }
?>

альтернативно:

<?php
    if(isset($_POST['submit'])) {
        $to = "mjleppan@hotmail.com";
        $subject = "Form Tutorial";
        $name_field = $_POST['name'];
        $email_field = $_POST['email'];
        $message = $_POST['message'];

        $body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

        mail($to, $subject, $body);
?>
    <script type="text/javascript">alert('Thank you form is submitted.');</script>
<?php
    } else {
        echo "blarg!";
    }
?>

Однако, похоже, вы не хотите, чтобы страница перезагружалась между отправкой формы и предоставлением пользователю подтверждения. Для этого вам нужно будет отправить форму через AJAX. Я рекомендую заглянуть в JQuery. Это делает это легко .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...