AJAX请求将空白表格数据发送到PHP

时间:2018-10-23 10:19:00

标签: php jquery ajax

这是将数据发送到数据库的代码。当我填写表单字段并单击“添加记录”按钮时,它可以正常工作。它将数据成功插入数据库中。

但是主要的问题是,如果表单字段为空,然后单击按钮,它将向数据库发送空数据。

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 :(得分: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;
            });
        });