使用jQuery将弹出窗口上传器转换为内联脚本?

时间:2011-09-02 14:44:32

标签: php jquery

我的脚本中有几个按钮,它们调用window.open('myUploadScript.php?arguments = test ...','')。

我在arguments()中传递querystring参数,以便处理目标文件myUploadScript.php。

我想调用此脚本而不在弹出窗口中打开它。我可以使用jQuery而不必从我的弹出窗口脚本开始吗?

换句话说,我的window.open包含:

<input 
type="button" 
id="myButton" 
value="myValue" 
onclick="window.open('myUploadScript.php?action=test',
    'popup',
    'width=330,
    height=300,
    scrollbars=no,
    resizable=no,
    toolbar=no,
    directories=no,
    location=no,
    menubar=no,
    status=no'); 
    return false" 
/>

我可以调用一个jQuery来将myUploadScript.php的内容加载到占位符div中,并将其传递给“test”参数吗?

3 个答案:

答案 0 :(得分:1)

使用。load

$('#your_div').load( 'myFile.php?action=test' );

答案 1 :(得分:1)

执行$.ajax()对该页面的调用:

//register click on input event
$('#myButton').click(function() {
    //do ajax call to your script
    $.ajax({
        url: 'myFile.php',
        data: { action: 'test' }, //adds a query string to the URL '?action=test'
        success: function(data, textStatus, jqXHR) {
            //data is the returned value from your .php script
            $('#divId').html(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            //some error occurred you can handle it here
        }
    });
});

答案 2 :(得分:1)

您可以轻松地按照其他海报的说明进行操作。但是,如果它是一个实际的文件上传脚本,这对你没有帮助。

问题是文件上传不能通过AJAX工作(仅适用于部分浏览器,但一般不适用)。在纯html / javascript中实现ajax文件上传的唯一方法是使用iframe,如下所示:

    <form id="vinsearchform" target="upload_target" action="/Home/VINUpload" method="post" enctype="multipart/form-data">
       <input type="file" name="filename" />
       <input type="submit" />
    </form>

    <iframe style="display:none" id="upload_target" name="upload_target"></iframe>

这样做是将上传内容发布到隐藏的iframe中。 iframe必须发出javascript,告诉页面它已完成,如下所示:

<script language="javascript" type="text/javascript">
   window.top.window.uploadCompleted();
</script>