2015-04-30 59 views
1

我有以下問題:Servlet加載新頁面

我有兩個servlet,一個返回導航。有些servlet通過DAO獲得的類別和子類別。我用下面的腳本得到的servlet正確的位置上導致:

$(document).ready(function() {       
       $('#navigation').load('Navigation'); 
       $('#content').load('Content'); 
      }); 

下面我的導航格,我有一個內容股利。正如你所看到的,我正在加載內容servlet。在我的導航中;我有以下元素:

<li><a><form action='Content' method='get'><button type='submit'>" 
           + k2.getKName() + "</button><input type='hidden' name='category' value='"+ k2.getKategorieNr() + "'/></form></a></li> 

現在,當我點擊一個子類別時,該按鈕將調用內容servlet。問題是,它會在沒有導航的情況下加載一個新頁面。所以我只能看到servlet在新頁面中返回的代碼。

如何獲取上一頁中內容servlet的結果,因爲它已經適用於我的導航servlet?

回答

1

當你加載你的頁面開始,$("#navigation").load("Navigation")使得AJAX請求您Navigation servlet和粘貼從servlet回HTML響應到像<div id="navigation">的元素。

當您單擊表單中的按鈕時,您正在向同一個servlet發出頂級整頁請求,並且響應內容將替換整個瀏覽器窗口,而不是像將它粘貼到頁面一樣jQuery load

來解決,這可能是與jQuery的給ajaxForm插件最簡單的方法: http://malsup.com/jquery/form/

,你會做一些你準備好回調像

$(document).ready(function() {       
      $('#navigation').load('Navigation'); 
      $('#content').load('Content'); 
      $('#formId').ajaxForm({target: '#content'}); 
     }); 

當然,你需要一個ID添加到你的表單元素,所以你可以很容易地找到它與jQuery。

jQuery ajax - change jQuery target value with form submit

+0

感謝您的答覆。這似乎是合法的。我會在稍後嘗試。一個問題:你能否推薦我另一種方式來解決與servlet之間的互通問題而不使用jQuery? – Goldi

+0

現在我的servlets沒有加載:( – Goldi

+0

你已經在使用jQuery了,如果你在做AJAX,任何類型的你都想使用jQuery(或者其他建立在jQuery之上的東西)。 – wrschneider