Это код, который отправляет данные в базу данных. Он работает правильно, когда я заполняю поле формы и нажимаю кнопку «Добавить запись». Он успешно вставляет данные в базу данных.
Однако основная проблема заключается в том, что если поле формы пусто, а затем я нажимаю кнопку, оно отправляет пустые данные в базу данных.
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");
}
});
}
if the form field is empty and then I click the button, it sends empty data to the database Это стандартное поведение. Ваша проблема в том, что вы хотите проверить, что все поля заполнены, прежде чем разрешить отправку формы? Также удалить async: false. Это ужасная практика, и в этом нет необходимости, поскольку вы правильно используете шаблон обратного вызова.
добавить атрибут required во входной тег, например <input type = "text" name = "first_name" required >. также вы можете использовать javascript и jquery для проверки перед отправкой запроса ajax
вам нужно проверить, пусты ли данные в вашем файле php.
потому что вы не обрабатываете и не проверяете пустые значения
проверьте свои данные в bakcend или во внешнем интерфейсе.






у вас есть 3 места, где вы можете решить проблему с пустыми данными перед сохранением в базу данных
1- Поместите обязательный атрибут в свои элементы ввода, чтобы пользователь не мог отправлять пустые поля.
2- проверьте данные формы в функции java-скрипта addRecord () перед выполнением запроса ajax. если проверка завершена, отправьте пользователю вызов ajax, иначе покажите сообщение, чтобы заполнить данные.
3- проверьте свои данные, которые вы получили в переменной $ _POST, и если поля пусты, отправьте сообщение об ошибке обратно в ответе ajax и покажите ошибку пользователю.
Как я могу это проверить?
введите необходимые теги ввода формы, например <input type = "text" name = "fieldname" required>
Обязательно установите для свойства contentType значение "application/x-www-form-urlencoded", чтобы проанализировать это на внутреннем сервере.
Когда вы получаете значение данных формы, в то время как значение поля формы должно быть пустым или нет ... или использовать данные 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;
});
});
В
ajax/EditDeleteLecture.phpсделайтеprint_r($_POST);и опубликуйте вывод здесь.