AJAX-запрос отправляет пустые данные формы в PHP - PullRequest
0 голосов
/ 23 октября 2018

Это код, который отправляет данные в базу данных.Он работает правильно, когда я заполнил поле формы и нажал кнопку «Добавить запись».Он успешно вставляет данные в базу данных.

Однако основная проблема заключается в том, что если поле формы пустое, а затем я нажимаю кнопку, оно отправляет пустые данные в базу данных.

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");
    }
  });
}

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Убедитесь, что для свойства contentType установлено значение "application/x-www-form-urlencoded", чтобы проанализировать его на внутреннем сервере.

0 голосов
/ 23 октября 2018

Когда вы получаете значение данных формы, когда вам нужно, чтобы значение поля формы было пустым или нет ... или использовать данные 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;
            });
        });
0 голосов
/ 23 октября 2018

у вас есть 3 места, где вы можете решить проблему с пустыми данными перед сохранением в базу данных

1- Ввести обязательные атрибуты в ваши элементы ввода, чтобы пользователь не мог отправлять пустые поля.

2-проверьте данные формы в функции java-script addRecord () перед выполнением запроса ajax.если проверка завершена, отправьте ajax-вызов, иначе покажите пользователю сообщение для заполнения данных.

3- проверьте ваши данные, полученные в переменной $ _POST, и если поля пусты, отправьте сообщение об ошибке обратно в ответ ajax ипоказать ошибку пользователю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...