Вход

Просмотр полной версии : Знакомлюсь с AJAX: JS "не отвечает"...


Булат Азат улы
09.06.2017, 02:19
Здравствуйте. Начал изучать AJAX, и хотел сделать для своего сайте первое нововведение на нём: сделать отправку сообщений с сайта на AJAX.
В HTML обычная форма отправки:

<form method="POST" name="feedback" id="feedback">
<input required type="text" name="name" id="name" placeholder="Ваше имя" maxlength="50">
<input type="text" name="email" id="email" placeholder="Ваш E-mail" maxlength="50">
<textarea required name="text" id="text" placeholder="Ваше сообщение"></textarea>
<input type="button" value="Отправить" name="button" id="button">
</form>

Вот код в Яваскрипте (jQuery):

$("#button").click(function() {
$.ajax ({
url: "ajax.php",
type: "POST",
data: ({name: $("#name").val(), email: $("#email").val(), text: $("#text").val()}),
dataType: "html",
success: function(data) {
if (data == 1) {
alert("Письмо отправлено!");
} else {
alert("Ошибка отправки письма.");
}
}
});
}

И вот данные файла ajax.php:

if (mail("моймайл@mail.ru","Письмо с сайта","Имя: $_POST[name]\nE-mail: $_POST[email]\nСообщение:\n$_POST[text]")) {
echo "1";
} else {
echo "0";
}

На сайте вообще, нигде яваскрипт не работает. При нажатии кнопки отправки тоже, не срабатывает "required " (это, наверное, после того, как я изменил его тип с Сабмита на Баттон).
Сам ищу - ошибку не нахожу. Вроде написано так, как на примерах. Подскажите пожалуйста, где тут ошибка?

ksa
09.06.2017, 08:50
На сайте вообще, нигде яваскрипт не работает. При нажатии кнопки отправки тоже, не срабатывает "required " (это, наверное, после того, как я изменил его тип с Сабмита на Баттон).
Сам ищу - ошибку не нахожу. Вроде написано так, как на примерах. Подскажите пожалуйста, где тут ошибка?
У меня все работает...

Файл tmp.csp
<!DOCTYPE html>
<html ng-app='app'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
$("#feedback").submit(function() {
$.ajax ({
url: "tmp1.csp",
type: "POST",
data: {
name: $("#name").val(),
email: $("#email").val(),
text: $("#text").val()
},
dataType: "html",
success: function(Data) {
alert("Письмо отправлено!"+' - '+Data);
}
});
});
});
</script>
</head>
<body ng-controller='ctrl'>
<form method="POST" name="feedback" id="feedback">
<input required type="text" name="name" id="name" placeholder="Ваше имя" maxlength="50">
<input type="text" name="email" id="email" placeholder="Ваш E-mail" maxlength="50">
<textarea required name="text" id="text" placeholder="Ваше сообщение"></textarea>
<input type="submit" value="Отправить" name="button" id="button">
</form>
</body>
</html>


Файл tmp1.csp
Ok

Булат Азат улы
09.06.2017, 11:16
Спасибо, у меня теперь тоже заработало :write: