使用AJAX和Normal提交文件同时提交

时间:2013-03-18 07:20:11

标签: php file-upload upload loading ajax-upload

我创建了一个文件上传表单。我想上传数据并同时上传一个ajax调用,该调用用BOOTMETRO主题提供的加载动画替换该页面中的div。 文件上传和Ajax都可以单独运行。但我只想点击一下。

所以当我按一下提交按钮时: 1)AJAX应该替换我页面中的分区 2)然后文件上传应该正常启动。

我的HTML表单是:     

<input name="file" type="file" class="btn btn-info" id="file" /><br/>

<button type="submit" value="Submit" name="submit" onclick="submit()">Submit File</button>
 </form>   

AJAX部分

function submit()
    {
var xmlhttp;

    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }


    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
          document.getElementById("fetchLoading").innerHTML=xmlhttp.responseText;
        }
      }

    xmlhttp.open("GET","loading.php" ,true);
            xmlhttp.send();
    xmlhttp.open("GET","upload_process.pgp",true);
    xmlhttp.send();
    }

请帮忙!或建议一种技术。 (我正在使用boot metro,我想从ajax加载到我文件中的div加载,直到文件上传并且页面处于等待模式)

1 个答案:

答案 0 :(得分:1)

您需要先发送AJAX呼叫,当您收到响应时,会以编程方式上传文件。

所以你的提交按钮就像:

<button type="submit" value="Submit" name="submit" onclick="return submit()">Submit File</button>

您的submit函数应返回false以阻止表单提交。 然后在AJAX响应中提交表单。

document.myform.submit();

myform替换为表单名称。