AJAX-код, JQuery возвращает ложь не работает. пробовал другие ответы

Я написал код 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";
}
}?>

0

Решение

  • НИКОГДА не называйте вашу кнопку отправки «отправить» — она ​​заменяет / блокирует обработчик 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);
});
});
});
1

Другие решения

Вы должны предотвратить действие по умолчанию для отправки в первой части кода, которая находится в функции щелчка

0

Я думаю твой

#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;
});
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector