Я пытаюсь сделать контактную форму HTML, которая отправит электронное письмо через MailGun
Я следую инструкциям здесь, чтобы сделать это, используя Ajax и PHP
У меня нет опыта работы на PHP и вы хотите простой способ отладки.
Таким образом, я хочу добавить всплывающие сообщения в send.php
Я могу заставить wwwroot \ hello.php работать, поэтому я знаю, что PHP доступен.
<?php echo("hello php"); ?>
Я пробовал следующее в send.php, но я не вижу никаких сообщений
<?php echo "Hello Send2"; if( isset($_POST) ){ echo "In post."; phpAlert("in post2"); $postData = $_POST; $mailgun = sendMailgun($postData); if($mailgun) { echo "Great success."; } else { echo "Mailgun did not connect properly."; } } // etc
Вызов Ajax
var dataString = '<p><strong>Name: </strong> '+ name + '</p><p><strong>Email: </strong> ' + email + '</p><p><strong>Message: </strong> ' + message + '</p>'; $.ajax({ type: "POST", url: "script/send.php", data: { data: dataString, senderAddress: email }, success: function() { alert("Got success");
Я получаю сообщение javascript «Got success», но я пытаюсь устранить неполадку, почему send.php не работает.
Я думаю, что первым шагом было бы добавить призывы к эху, но ничего не видно.
send.php содержит вызовы curl, поэтому я предполагаю, что мой следующий вопрос может состоять в том, как установить это в Azure, но сначала я хотел бы знать, почему echo не работает из send.php
Вы сказали: «Я не вижу никаких сообщений». Поскольку вы сообщаете, что вызов ajax завершается успешно, это просто потому, что ваш вызов ajax не распечатывает их. В отличие от непосредственного вызова сценария, когда вы запрашиваете через ajax, он автоматически не откликается на ответ на ваше окно браузера. В конце концов, ваш код не знает, где на вашей существующей странице вывести этот вывод, пока не сообщите об этом. (Он не может просто разместить его произвольно где-то, что может потенциально разрушить макет страницы или просто выглядеть глупо).
Обратный вызов «success» предоставляет параметр, который будет содержать ответ от сервера. Вы должны принять это и показать это как-то. Вот очень простой пример, просто показывая ему окно предупреждения:
success: function(response) { alert(response); }
response
будет содержать все, что вы echo
в сценарии send.php.
См. http://api.jquery.com/jquery.ajax/, чтобы понять, какие параметры предоставляются различными обратными вызовами в $ .ajax и тем, что они содержат.
PS Вы также можете всегда видеть ответ на вызов ajax, даже если вы не используете ответ в своем коде, просто открыв инструменты разработчика вашего браузера, перейдя на вкладку «Сеть» и ищите вызов ajax и просматривая « Ответ "в этом вызове.