#javascript #php #jquery #html #ajax
#javascript #php #jquery #HTML #ajax
Вопрос:
Я создаю свой первый веб-сайт и хочу реализовать контактную форму с использованием ajax и php, но она не будет работать. Этот вопрос может показаться глупым, но, пожалуйста, не ненавидьте меня за то, что я новичок в программировании.
У вас, ребята, есть идея, что может быть не так?
Вот мой HTML-код:
<div class="col-lg-9 col-md-9 col-xs-12">
<div class="contact-block">
<form id="contactForm">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" id="name" name="name" placeholder="Ihr Name" required data-error="Bitte geben Sie Ihren Namen ein">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="text" placeholder="Ihre E-Mail" id="email" class="form-control" name="name" required data-error="Bitte geben Sie Ihre E-Mail Adresse ein">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<input type="text" placeholder="Betreff" id="msg_subject" class="form-control" required data-error="Please enter your subjectBitte fügen Sie einen Betreff hinzu">
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<textarea class="form-control" id="message" placeholder="Ihre Nachricht" rows="7" data-error="Schreiben Sie eine Nachricht" required></textarea>
<div class="help-block with-errors"></div>
</div>
<div class="submit-button">
<button class="btn btn-common btn-effect" id="submit" type="submit">Nachricht senden</button>
<div id="msgSubmit" class="h3 hidden"></div>
<div class="clearfix"></div>
</div>
</div>
</div>
</form>
</div>
</div>
Это мой js-код:
function submitForm(){
// Initiate Variables With Form Content
var name = $("#name").val();
var email = $("#email").val();
var msg_subject = $("#msg_subject").val();
var message = $("#message").val();
$.ajax({
type: "POST",
url: "php/form-process.php",
data: "name=" name "amp;email=" email "amp;msg_subject=" msg_subject "amp;message=" message,
success : function(text){
if (text == "success"){
formSuccess();
} else {
formError();
submitMSG(false,text);
}
}
});}
Это мой php-файл, в который я хочу отправить почту:
<?php
if($_POST){
$name = $_POST['name'];
$email = $_POST['email'];
$msg_subject = $_POST['msg_subject']
$message = $_POST['message'];
//send email
mail("email@gmail.com", "This is an email from:" .$email, $msg_subject, $message);}?>
Если вам нужна дополнительная информация, пожалуйста, не стесняйтесь спрашивать.
Комментарии:
1. У вас есть какие-либо ошибки?
2. Какая часть не работает?
3. Если я нажму кнопку «отправить сообщение», ничего не произойдет, и я не знаю почему. Есть ли ошибка в моем сообщении ajax -> php
Ответ №1:
я использовал ajax с NodeJS, но я не думаю, что это должно быть допустимо url: "php/form-process.php",
попробуйте вместо этого добавить маршрут, который вы используете для обработки запроса, например
/form-process.php
или /php/form-process.php
или любой другой маршрут, который вы используете
если вы не добавили jquery в свой html, это тоже приведет к этому
Ответ №2:
Здесь может быть несколько вещей. Трудно сказать, не увидев больше. Вы подключили функцию submitForm() к кнопке?
Ответ №3:
Некоторые возможные причины:
Попробуйте включить библиотеку jQuery:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Поместите свой код jQuery в .ready():
$( document ).ready(function() {
// Handler for .ready() called.
});
Вам нужно вызвать функцию JS submitForm() в событии отправки формы:
$("#contactForm").on( 'submit', function(){
submitForm();
return false;
});
Убедитесь, что существует следующий URL:
php/form-process.php
Исправьте параметры вашей почтовой функции:
mail ( string $to , string $subject , string $message [, mixed $additional_headers [, string $additional_parameters ]] )