提交AJAX表单,重定向而不是在页面上处理
Submitting AJAX form, redirects instead of processing on page
因此,当用户访问我的页面时,我有一个ajax函数,它可以获取数据库中的行数并吐出数字(效果很好)。我还有一个表单,用户可以在其中提交一个单词。我想做的是,当用户向数据库提交一个单词时,AJAX将负责提交,然后运行一个函数来获取数据库中的新行数。
此代码重定向到submit.php页面,而不是在主页上处理所有内容
AJAX
$(document).ready(function() {
display();
$('.add').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'submit.php',
data: $('this').serialize(),
success: function () {
display();
}
});
});
});
function display() {
$(".container").load("ajax.php").hide().delay(500).fadeIn(1500);
}
HTML
<div class="container"></div>
<form action="submit.php" method="post">
<input type="text" name="word">
<input type="submit" class="add" name="add" value="add">
</form>
ajax.php
<?php
$conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
$query = "SELECT * FROM test";
$result = mysqli_query($conn, $query) or die ('error could not query');
$num = mysqli_num_rows($result);
echo '<h1>'.$num.'</h1>';
?>
Submit.php
<?php
if(isset($_POST['add'])) {
//Connect
$word = $_POST['word'];
$conn = mysqli_connect('localhost', 'root', '', 'test') or die('error could not connect');
$query = "INSERT INTO test VALUES(0, '$word')";
mysqli_query($conn, $query) or die('error could not query');
}
?>
您应该将submit
事件挂接到form
,而不是提交button
。
按钮没有提交事件,这就是为什么你的按钮没有被连接的原因。
$('this').serialize();
应为:
$(this).serialize();
相关文章:
- Javascript无法处理表单提交
- 用于处理表单的Handlerbars模板
- jQuery无法在InfoWindow中处理表单
- php会话不会;单击“提交”按钮时无法处理表单
- 使用 JS 和 JQuery 处理表单输入
- 使用 javascript 处理表单并在弹出窗口中使用它
- 使用 jQuery 处理表单
- 调用 Javascript 函数处理表单后,HTML 表单未打印到浏览器
- 处理表单时显示图像时出错
- 使用第二个按钮处理表单数据PHP_SELF将表单数据发布到另一个页面
- 使用 d3 而不是 jQuery 来处理表单输入会导致重新加载“/”
- 用Javascript处理表单提交事件,避免“;Form Processed”;
- jQuery屏蔽输入插件无法处理表单输入
- 在不重定向或使用过多JavaScript的情况下处理表单上的必需字段
- window.open无法处理表单
- Symfony 2:如何处理表单中的嵌套集合
- 处理表单时禁用“提交”按钮
- 提交并确认始终处理表单
- 用Javascript中的多个提交按钮处理表单提交
- 用javascript异步预处理表单数据