我在网站上已经阅读了很多有关此问题的问题/答案,并且不确定其中任何一个可以解决我的问题。以下是我的应用程序应该如何工作:
我不认为使用iframe,Window.location.href或使用html表单的解决方案将满足我的要求。如果我的问题有任何解决方案,请告诉我。非常感谢任何帮助。
-Tam
答案 0 :(得分:0)
当你在问题标题中写下来时,我建议你使用一些javascript,无论是JQuery还是原型都可以完成这项任务。
由于我对最后一个有了更多了解,我将提供一些代码
这是我理解你的案件的过程。
首先,您的服务器发送带有表单的页面。
然后用户选择一个文件并单击发送按钮,页面不会重新加载并使用Ajax来完成工作
JQuery获取数据并通过Ajax(request();
)将其发送到您的服务器
服务器发回结果,您可以显示displayFilesList();
your_form_id
是您的表单ID
submitForm
是提交表单时调用的函数的名称
displayFilesList
将是您的服务器发送回结果时调用的函数,此函数还希望您以json格式发回结果
$('#your_form_id').submit(submitForm);
function submitForm()
{
var data = $('#your_form_id').serializeArray();
//Code to remove the send button here
//Code to insert a loading.gif
request("/your/url", data, displayFilesList);
return false;
}
function displayFilesList(jsonResult)
{
var data = jQuery.parseJSON(jsonResult);
//Code to display the files list here
//
}
function request(url, paramPost, successCallback, errorCallback)
{
if ((typeof successCallback == 'undefined') || (successCallback == null))
successCallback = dispSuccess;
if ((typeof errorCallback == 'undefined') || (errorCallback == null))
errorCallback = dispError;
var AjaxUrl = url;
$.ajax({
type: "POST",
url: AjaxUrl,
data: paramPost
}
).done( function(msg)
{
successCallback(msg);
}
).fail( function(jqXHR, textStatus, errorThrown)
{
errorCallback(jqXHR, textStatus, errorThrown);
}
);
}
function dispError(jqXHR, textStatus, errorThrown)
{
alert(jqXHR.responseText);
}
function dispSuccess(html)
{
alert(html);
}