@levviatthan

Как настроить отправку формы на сервер в mysql с помощью ajax?

есть рабочая форма гостевой книги. данные из нее попадают в mysql базу данных. но страница каждый раз перезагружается, так нужно подключить ajax. но при подключении данные не доходят до базы данных. может кто-то видит ошибку?

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Отправка форм AJAX</title>
</head>
<body>
	<form id="form">
		<input type="text" name="name" placeholder="Ваше имя" required /><br />
		<input type="text" name="phone" placeholder="Ваш телефон" required /><br />
		<button>Отправить</button>
	</form>
	<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
	<script src="common.js"></script>
</body>
</html>


$(document).ready(function() {

	$("#form").submit(function() {
		$.ajax({
			type: "POST",
			url: "addguestbook.php",
			data: $(this).serialize()
		}).done(function() {
			$(this).find("input").val("");
			alert("Спасибо за заявку! Скоро мы с вами свяжемся.");
			$("#form").trigger("reset");
		});
		return false;
	});
	
});


$host="localhost"; // Host name 
$username="userr"; // Mysql username 
$password="1234"; // Mysql password 
$db_name="userr"; // Database name 
$tbl_name="mytable"; // Table name 
$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
// Connect to server and select database.
$connect = mysqli_connect("$host", "$username", "$password", "$db_name" )or die("cannot connect server "); 
//mysql_select_db("$db_name")or die("cannot select DB");


$datetime=date("y-m-d h:i:s"); //date time

$result=mysqli_query($connect,"INSERT INTO mytable(name, email)VALUES('$name', '$phone')");

//check if query successful 


mysqli_close($connect);
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых:
$("#form").submit(function(e) {
e.preventDefault();
$.ajax({ ...
иначе форма будет пытаться засубмититься через раз( ретурн фалс не всегда срабатывает).

во вторых - консоль браузера смотрите, что уходит, что возвращается. По уму сервер по завершении работы должен отчитаться - "все ок", или "шеф, фсе пропало!". И уже о этого можно отталкиваться в яваскрипте что писать в алерт.

В третьих так же неплохо проверить что данные попадают в нужный скрипт, а то у вас довольно фривольно указан адрес куда аякс должен стучаться. Скорее всего скрипт тупо не понимает адрес который прописан, указывать нужно от корня сайта, например "/addguestbook.php"
Ответ написан
Комментировать
@nurjigit92
Дополнительно:
мне кажется тут с полями что то не то
$result=mysqli_query($connect,"INSERT INTO mytable(name, email)VALUES('$name', '$phone')");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы