日期:2014-05-16  浏览次数:20683 次

jquery提交表单 php
本帖最后由 showbo 于 2012-09-01 09:57:28 编辑
想实现的功能如下:

<form name="frm" method="post" enctype="multipart/form-data">
  <table>
    ......
     <input id="myfile" name="myfile" type="file"/>
    .......
 </table>
</form>


Js:
function  aa(){

    document.forms[0].action='/Pfmg0420/upload';
    document.forms[0].target='_blank';
    document.forms[0].submit();
}


uploadAction:
  .....
  $fileName = $_FILES["myfile"]["name"];
  .....


现在我想用不刷新页面,就能达到和function aa()的效果怎么实现。谢谢。
我这个是在zendframework下的开发。

我现在是这样写的:
    $.ajax({
        type: "POST",
        url: '/Pfmg0420/upload',
        data: {"filename":'aa'},
        dataType: "json",
        async:false,
        success: function(json) {
        }
    });
这个只能在后台获得filename的值为aa,不知道怎么把form提交到后台。
望赐教,  谢谢
------解决方案--------------------
本帖最后由 showbo 于 2012-09-01 10:04:06 编辑
ajax不能上传文件,你可以下载其他组件,jquery.form之类的,已经封装好提交文件的相关控制了

这类插件都是使用隐藏iframe或者flash来实现无刷新上传的,你要简单一些就直接提交表单到隐藏的iframe中来实现即可,不一定需要jquery

<iframe name="ajaxifr" style="display:none"></iframe>
<form name="frm" method="post" enctype="multipart/form-data" target="ajaxifr">
  <table>
    ......
     <input id="myfile" name="myfile" type="file"/>
    .......
 </table>
</form>


 $fileName = $_FILES["myfile"]["name"];
//保存文件操作
echo "<script>alert('上传完毕');parent.frm.reset()</script>"//输出js脚本提示信息并且重置表单

------解决方案--------------------
楼上的方法好。