JS文件中的引导程序验证后,Ajax脚本未执行

时间:2016-07-09 09:36:55

标签: php jquery ajax

我想使用JQuery将数据发送到PHP页面但它无法正常工作...如果我在标签中写入“action”属性,那么它将值传递给PHP进程页面(img_upload_p.php)但是当我尝试发送时它使用Ajax(通过img_upload.js)然后它没有用...下面给出的是我的代码...

在“img_upload.js”文件中,bootstrap验证工作正常,但验证后的代码没有执行...

img_upload.php

<form name="frm_add" id="frm_add" action="img_upload_p.php" method="post" enctype="multipart/form-data">
     <input type="text" name="txt_name" id="txt_name" >
     <input type="file" name="img_upload" id="img_upload">  
</form>

img_upload.js

$(function() {
    $("#frm_add input, #frm_add select, #frm_add textarea").jqBootstrapValidation({
    preventSubmit: true,

    submitSuccess: function($form, event) {
        $("#frm_add").on('submit',(function(e) { 
            event.preventDefault();
            $.ajax({
            url: "./image_upload_p.php",
            type: "POST",
            data: new FormData(this),
            dataType: "json",
            contentType: false,
            cache: false,
            processData:false,
            success: function(data) 
            {
                var $responseText=JSON.parse(data);
                if($responseText.status == 'SUC')
                {
                    // Success message
                }

                else if($responseText.status == 'ERR')
                {
                    // Fail message
                }
            },
         })
      }));
    },      
});

});

img_upload_p.php

... image upload functionality ...
... database insert query executed ...

$response['status']='ERR';
$response['message']="Submitted Successfully...!!!";
echo json_encode($response);
return;

1 个答案:

答案 0 :(得分:0)

submitSuccess是一个回调,在用户尝试提交带有效输入的表单时使用。这意味着已触发提交事件。因此,您必须删除$("#frm_add").on('submit',(function(e) {... })包装并执行ajax请求:

$("#frm_add input, #frm_add select, #frm_add textarea").jqBootstrapValidation({
    submitSuccess: function ($form, event) { 
      $.ajax({...});
    }
  }
);