2012-02-02 52 views
0

我有一個網頁,其頂部有一個表格,底部有一個表格。該表單允許用戶提交信息並上傳圖像,表單的目標是iframe,其設置爲height = 0 width = 0。我這樣做的原因是爲了防止頁面刷新並進入分配的操作頁面。該表只是幾行不同的用戶數據。當用戶提交數據時,我想調用一個事件來刷新包含新數據的表。如何通過iframe使用功能?

有沒有辦法在提交後刷新表格和表單而不移動到新頁面?這是可行的使用iframe或者我應該嘗試其他方法嗎?現在我唯一的想法是使用iframe,它可以防止頁面在提交後移動到新頁面。

回答

1

這對於AJAX技術非常有用 - 您可以調用服務器併發送一個HTML片段,該片段被加載到當前頁面中指定的包裝器元素中。

儘管您可以使用標準JavaScript來完成所有這些工作,但大多數都使用庫來處理所有跨瀏覽器問題。最流行的是jQuery。

jQuery是用JavaScript編寫的,擴展了它的功能,爲您提供了很好的快捷方式和增強功能,而無需編寫大量代碼。

參見:http://api.jquery.com/jQuery.ajax/

在你的情況下,I幀將包括JavaScript的一個塊,這將調用Ajax的功能在父頁面。

參見:How to call function on parent page from iframe using jQuery?

-1

iframe中有你可以使用onload事件處理程序,當窗體發佈它調用的事件處理程序,我把它叫做「貼」,即更新表。

<script> 
    function posted(str){ 
     var matches=str.match(/^.*\?data=(.*)$/); 
     if(matches) 
      document.getElementById("data").innerHTML+=matches[1]+"<br/>"; 
    } 
    </script> 
    <form method='get' action='nowhere.html' target='frame'> 
     <input name='data'/> 
    </form> 
    <table width="100%" border=1> 
     <tr><td id='data'></td></tr> 
    </table>  

    <iframe style='display:none' name='frame' onload="posted(this.contentWindow.location.href)"> 
    </iframe> 
+0

我看到你在做什麼,但我使用的是後期的方法。 – iCodeLikeImDrunk 2012-02-02 16:30:26