Я написал код AJAX и связал файл php, но код не принимает return false;
функция в конце. это берет меня к файлу действия. Мой код ajax
$("#submit").click( function() {
var data = $("#form :input").serializeArray();
$.post($("#form").attr("action"), data, function(info) { $("#result").html(info);});
});
$("#form").submit(function() {
return false;
});
Мой код index.php
<?php
include('new.php');?><!DOCTYPE html>
<html>
<head>
<title>Ajax practice</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form action="new.php" method="post" id="form">
<label>Name</label><br>
<input type="text" name="name"/><br>
<label>Email</label><br>
<input type="Email" name="email"/><br>
<button type="submit" name="submit" id="submit">submit to database</button>
</form>
<span id="result"></span>
</body>
</html>
Мой php файл
<?php
$con = mysqli_connect("localhost","root","","ajax") or die ("couldnt connect to database.");if (isset($_POST['submit'])) {global $con;
$title = $_POST['name'];
$email = $_POST['email'];$insert_user = "INSERT INTO ajax (title, email) VALUES ('$title', '$email')";
$run_user = mysqli_query($con,$insert_user);if ($run_user) {
echo "Success";
} else {
echo "Failed";
}
}?>
НИКОГДА не называйте вашу кнопку отправки «отправить» — она заменяет / блокирует обработчик form.submit
+ Изменить
<button type="submit" name="submit" id="submit">submit to database</button>
в
<button type="submit">submit to database</button>
Если JS с обработчиками находятся в голове или перед объектами, к которым они получают доступ, вам нужно обернуть обработчик в onload — здесь я использую $(function() {....});
Каноническим способом является использование события submit, а не события click — он также сохраняет обработчик:
Тестировать: http://plungjan.name/SO/testajax/testajax.html
$(function() { // when page loads
$("#form").on("submit",function(e) {
e.preventDefault(); // cancel submit
$.post($(this).attr("action"), $(this).serialize(), function(info) {
$("#result").html(info);
});
});
});
Вы должны предотвратить действие по умолчанию для отправки в первой части кода, которая находится в функции щелчка
Я думаю твой
#sumit is id for <input type="submit">
Следовательно, когда вы делаете
$('#submit').click(function() {});
Без предоплаты и делай
#('#form').submit(function() {
Return false;
} //think this for your form
Вы противоречите своему коду. Вы говорите это делать, а не делать, так что это запутано
Я советую вам сделать
$('#form').on("submit", function() {
$.ajax({//ajax code});
Return false;
)};
Попробуйте это для своего кода
$('#submit').click(function() {
var data = $('#form').serialize();
$.ajax({
type: "POST",
url: "ajaxsubmit.php",
data: data,
cache: false,
success: function(result){
alert(result);
}
)};
return false;
});