我写了一个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 :(得分:1)
永远不要将提交按钮命名为“提交” - 它会替换/阻止form.submit处理程序
更改
<button type="submit" name="submit" id="submit">submit to database</button>
到
<button type="submit">submit to database</button>
如果带有处理程序的JS位于头部或他们访问的对象之前,则需要将处理程序包装在onload中 - 这里我使用$(function() {....});
规范方式是使用提交事件而不是点击事件 - 它还会保存处理程序:
测试: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)
您必须在Click函数的第一部分代码中阻止提交的默认操作
答案 2 :(得分:0)
我认为你的
#sumit is id for <input type="submit">
因此当你做
时 $('#submit').click(function() {});
没有preventDefault并且执行
#('#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;
});