form表单提交获取返回值(文件提交)

form表单提交获取返回值(文件提交)
昨天搞了一天,百度了好几个小时,结合了各种博客终于解决了这个问题
毕竟我就是个菜鸡嘛
emmmmm…有点蛋疼

我试了一上午才得出结论:纯ajax是不能提交文件的
如果要提交文件可以用webuploader
但是我用不来,也找不到地方下载,干脆的就放弃了

到下午我看见能用jquery.form.js可以解决这个问题
随后我果断把jquery.form.js搞进了IDEA
在IDEA创建一个js文件再复制进去引用下就能用了

然后这是我的表单

<form id="formSumbit" onsubmit="return submitChange();"  method="post" enctype="multipart/form-data" action="/housing/house/uploadInfo">
            <input id="file"  type="file" name="file">
            <input id="upload"  type="submit" value="上传">
</form>

先定义一个options用作ajaxSubmit的参数

 var options={
        //target : '#output',    // 把服务器返回的内容放入id为output的元素中
        //beforeSubmit : showRequest,    // 提交前的回调函数
        success : showResponse,    // 提交后的回调函数
        // url : url,    //默认是form的action,如果申明,则会覆盖
        // type : type,    // 默认值是form的method("GET" or "POST"),如果声明,则会覆盖
        // dataType : null,    // html(默认)、xml、script、json接受服务器端返回的类型
        // clearForm : true,    // 成功提交后,清除所有表单元素的值
        // resetForm : true,    // 成功提交后,重置所有表单元素的值
        timeout : 3000    // 限制请求的时间,当请求大于3秒后,跳出请求
    }

因为我只需要一个提交后的返回信息所以其他的都注释了
之后需要在js写一个formSumbit()的function

var submitChange = function(){
        $("#formSumbit").ajaxSubmit(options);
        return false;
    };

return false 貌似是为了不让他重复提交 或者是让他不能弹到新网页
我也没学过前端这个我搞不清楚
最后定义一个showResponse的function就完事了

function showResponse(responseText,statusText){
        if (statusText != "success"){
            layer.confirm('报错喽!', {
                btn: ['确定']  //按钮
                , icon: 5
                , anim: 6
            }, function (index) {
                lock = true;
                layer.close(index);
            });
        }
        if (responseText.code == "0") {
            layer.confirm(responseText.msg, {
                btn: ['确定']  //按钮
                , icon: 6
            }, function () {
                window.parent.location.reload();    //刷新父页面
            });
        } else {
            layer.confirm(responseText.msg, {
                btn: ['确定']  //按钮
                , icon: 5
                , anim: 6
            }, function (index) {
                lock = true;
                layer.close(index);
            });
        }
    }

搞了一天看到这个真的有点想哭 哈哈哈
在这里插入图片描述
这是我第一次在CSDN写博客(大雾)

使用ajax提交form表单可以实现不刷新页面的数据交互,而ajax文件上传则可以实现异步上传文件。 首先,需要在前端页面中引入jquery库和jquery.form插件。 然后,通过jquery的ajax方法来提交表单数据,代码如下: ```javascript $(document).ready(function(){ $('#submitForm').click(function(){ var formData = new FormData($('#myForm')[0]); $.ajax({ url: 'submit.php', // 提交的url地址 type: 'POST', // 提交方式 data: formData, dataType: 'json', // 返回值类型 cache: false, // 是否缓存 processData: false, // 是否处理数据 contentType: false, // 是否设置内容类型 success: function(data){ // 成功回调函数 }, error: function(){ // 失败回调函数 } }); return false; }); }); ``` 其中,`#submitForm`为提交按钮的id,`#myForm`为表单的id,`submit.php`为后台处理程序的url地址。 对于文件上传,需要将`processData`和`contentType`设置为`false`,并使用`FormData`对象来传递表单数据,如下所示: ```javascript $(document).ready(function(){ $('#submitForm').click(function(){ var formData = new FormData($('#myForm')[0]); $.ajax({ url: 'submit.php', // 提交的url地址 type: 'POST', // 提交方式 data: formData, dataType: 'json', // 返回值类型 cache: false, // 是否缓存 processData: false, // 是否处理数据 contentType: false, // 是否设置内容类型 success: function(data){ // 成功回调函数 }, error: function(){ // 失败回调函数 } }); return false; }); }); ``` 后台处理程序可以通过`$_FILES`变量来获取上传的文件信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值