这是将数据发送到数据库的代码。当我填写表单字段并单击“添加记录”按钮时,它可以正常工作。它将数据成功插入数据库中。
但是主要的问题是,如果表单字段为空,然后单击按钮,它将向数据库发送空数据。
function addRecord() {
var formData = new FormData($("#form1")[0]); //It automatically collects all fields from form
$.ajax({
url: "ajax/EditDeleteLecture.php",
type: "post",
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function(output) {
alertify.set('notifier', 'delay', 3);
alertify.set('notifier', 'position', 'top-right');
alertify.success('Data Inserted Successfully');
readRecords();
$('#form1').trigger("reset");
}
});
}
答案 0 :(得分:0)
您有3个地方可以在保存到数据库之前解决空数据问题
1-在您的输入元素中放置必填属性,以便用户无法提交空字段。
2-在发出Ajax请求之前,请在Java脚本函数addRecord()中验证表单数据。如果验证完成,则发送ajax调用,否则向用户显示消息以填充数据。
3-验证您在$ _POST变量中收到的数据,如果字段为空,则在ajax响应中发送错误消息并向用户显示错误。
答案 1 :(得分:0)
确保将contentType属性设置为"application/x-www-form-urlencoded"
以便在后端服务器中进行解析。
答案 2 :(得分:0)
在获取表单数据值的同时,表单字段值应为空...或使用print_r($ _ POST)数据。
/ *提交我的表格* /
$( '#myform' ).submit(function() {
var errors = [];
/* else if Textarea is empty display message error */
if($('#myform textarea').val()=="") {
errors[errors.length] = 'enter your message';
}
/* if radio button is not being selected display message error */
if (!$(":radio:checked").attr('checked')) {
errors[errors.length] = 'select a radio';
}
if(errors.length > 0){
var errMsg = "Please "
for(e = 0; e < errors.length-1; e++){
errMsg += errors[e]+", ";
}
errMsg = errMsg.substr(0, errMsg.length -2)+" and "+errors[errors.length-1];
$('#errors').empty().text(errMsg);
return false;
}
/* Everthing is good display success message and add SENDING class to submit button */
else {
$('#myform :submit').addClass('sending').html('Sending message...');
$('#errors').empty().text('All Good :D');
}
return false;
});
});