form action没有在使用ajax和php插入数据时起作用。
form action没有在使用ajax和php插入数据时起作用。
我想使用PHP,MySqli和AJax从数据库中插入数据而不刷新页面,但是表单操作不起作用。我有一个名为'tbl_user'的表和字段'source','source1','source2','adult','child','infant',还有一个同名的id,请分享这个想法。
index.php:
// 用于使用的AJax操作消息
php脚本:
session_start();
date_default_timezone_set('Australia/Melbourne');
if(isset($_POST['submit'])){
$source = mysqli_real_escape_string($conn, $_POST['source']);
$source1 = mysqli_real_escape_string($conn, $_POST['source1']);
$source2 = mysqli_real_escape_string($conn, $_POST['source2']);
$adult = mysqli_real_escape_string($conn, $_POST['adult']);
$child = mysqli_real_escape_string($conn, $_POST['child']);
$infant = mysqli_real_escape_string($conn, $_POST['infant']);
$reg_id = rand();
$created = date('y-m-d-h-i-s');
$query = "INSERT INTO tbl_user(source,source1,source2,adult,child,infant,reg_id,created)
VALUES('$source','$source1','$source2','$adult','$child','$infant','$reg_id','$created')";
if(mysqli_query($conn, $query)){
$_SESSION['reg_id']=$reg_id;
header('Location:index.php');
}
}
?>
ajax脚本:
$(document).ready(function() {
var delay = 2000;
$('.btn-default').click(function(e){
e.preventDefault();
var source = $('#source').val();
if(source == ''){
$('.message_box').html('Enter Your source!');
$('#source').focus();
return false;
}
var source1 = $('#source1').val();
if(source1 == ''){
$('.message_box').html('Enter Your source1!');
$('#source1').focus();
return false;
}
var source2 = $('#source2').val();
if(source2 == ''){
$('.message_box').html('Enter Your source2!');
$('#source2').focus();
return false;
}
var adult = $('#adult').val();
if(adult == ''){
$('.message_box').html('Enter Your adult!');
$('#adult').focus();
return false;
}
var child = $('#child').val();
if(child == ''){
$('.message_box').html('Enter Your child!');
$('#child').focus();
return false;
}
var infant = $('#infant').val();
if(infant == ''){
$('.message_box').html('Enter Your infant!');
$('#infant').focus();
return false;
}
$.ajax({
type: "POST",
url: "index.php",
data: "source="+source+"source1="+source1+"source2="+source2+"adult="+adult+"child="+child+"infant="+infant,
beforeSend: function() {
$('.message_box').html('');
},
success: function(data){
setTimeout(function() {
$('.message_box').html(data);
}, delay);
}
});
});
});
问题原因:
这个问题的原因是使用AJAX进行POST请求时,发送的数据是字符串,这导致了问题。
解决方法:
尝试按照以下方法进行修改:
$.ajax ({ type: "POST", url: "index.php", dataType: "json", data:{ "source":source, "source1":source1, "source2":source2, "adult":adult, "child":child, "infant":infant }, beforeSend: function() { $('.message_box').html( '' ); }, success: function(data){ setTimeout(function() { $('.message_box').html(data); }, delay); } }); });
出现错误了吗?
出现了同样的问题。
错误是什么?
表单没有反应,没有显示消息。
请在开发者工具中检查控制台。
请检查我的表单。