正如您在问题标题中所写的那样,我建议您使用一些 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);
}