2013-03-18 131 views
0

我创建了文件上传表单。我想上传数据,同时使用由BOOTMETRO主题提供的加载animatoin替换该页面中的div的ajax调用。 文件上传和Ajax都能够单独运行。但我想要一次点击。使用AJAX和Normal进行文件上传同时提交

所以当我单击按钮提交时: 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(); 
    } 

请帮帮忙!或建议一种技术。 (我正在使用启动地铁,我想从我的文件加载从ajax加载到文件,直到文件上传和页面处于等待模式)

回答

1

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

所以,你的提交按钮会像:

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

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

document.myform.submit();

替换myform与形式的名称。

+0

Okk明白了!但是,我怎样才能发送和接收来自AJAX的响应? – user1773104 2013-03-18 07:53:35

+0

不,在'submit'函数末尾添加'return false'并在'if(xmlhttp.readyState == 4 && xmlhttp.status == 200)'中添加表单提交行'block – Naveed 2013-03-18 07:53:37

+0

Perfact Solution for this!非常感谢! – user1773104 2013-03-19 17:44:31