2011-10-11 49 views
0

你好傢伙我新手問題:) - 我目前使用PHP/Zend,現在我需要在我的一個頁面中顯示一個表單和其他內容。我不希望頁面重新加載,我不能使用彈出窗口,所以最好的選擇是動態顯示當前頁面中間的一個「方塊」,並且這個表單正在被加載......這個方式我可以有我的網頁(形式,文本,無論)被拉到這個廣場。動態框的最佳方式

爲了保持與舊/新和不同瀏覽器的兼容性,最佳選擇是什麼? DOJO - 這已經在Zend,JQuery或HTML5/CSS3中了嗎?此外,如果任何人可以指出我在哪裏可以找到這個信息的一些參考,這將是偉大的!

+0

** **爲什麼你不希望重新載入網頁?任何特定的原因?或者只是一時興起? –

回答

1

AJAX是最常見的手段(異步JavaScript和Xml)來做到這一點 - 它使用Javascript輪詢其他腳本(可以是.php頁面),然後返回基於請求的預定義輸出 - 此輸出可以是內容插入一個頁面或數據,然後可以由您的頁面解釋爲另一個行動(即從另一個頁面的輸出等。)。

在這個例子中,你的.php頁面可以在頭部包含JS(javascript),無論是鏈接的還是內聯的,其中都會包含啓動AJAX請求的細節 - 即多久觸發一次(按下按鈕等) ,通過什麼方式(POST或GET),發送了什麼(您希望的任何其他變量),目標腳本是什麼(將處理請求並輸出所需內容/數據的腳本),以及響應時應該怎麼做被接收(即,頁面上的哪個元素應該用響應來更新)。

一些關於AJAX:

http://webdesign.about.com/od/ajax/a/aa101705.htm

http://webtrends.about.com/od/web20/a/what-is-ajax.htm

可能開始最簡單的方法就是使用一個預先存在的JavaScript庫,例如無處不在的jQuery(jquery.com),有成千上萬的教程,雖然你需要做一些Javascript編程,但這個庫意味着你可以依靠相當簡單的語法來完成這個任務(如$('#myelement').load('mypage.php')):

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.sitepoint.com/ajax-jquery/

http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

簡單來說:

  1. 你必須與元素(區)你的PHP頁面需要更新(頁A)
  2. 構建另一個php腳本,輸出您想要「刷新」的內容,例如最新的新聞報道,每次運行(頁面B)
  3. 鏈接到頁眉部分(頁面A)中的jQuery庫
  4. 在頁面A的標題部分寫一個簡單的jquery函數,它表示每個X秒/分鐘(或按需),運行一個AJAX請求抓取頁面B的含量,並插入到網頁A

---更新中的一個元素(DIV)---

如果希望使用DOJO而不是jQuery,還有大量可用的資源:

http://dojotoolkit.org/documentation/tutorials/1.6/ajax/

http://www.infernodevelopment.com/dojo-ajax-tutorial

http://startdojo.com/2010/01/02/simple-ajax-form-tutorial/

http://today.java.net/pub/a/today/2006/04/27/building-ajax-with-dojo-and-json.html

http://www.ibm.com/developerworks/web/tutorials/wa-dojotoolkit/index.html

http://www.roseindia.net/dojo/

+0

驚人的幫助!謝謝。還有一件事,我不確定自己是對的,但考慮到Zend已經有了Dojo,那麼使用JQuery而不是已經在Zend中的優勢是什麼? –

+0

無論是/還是根據您的偏好,儘管您是對的,DOJO可以直接使用,但您應該沿着這條路線走 - 這兩個框架都可以實現相同的目標。不要忘了,如果你喜歡這個答案,可以將它投票/接受:) - 我也更新了鏈接,爲DOJO增加一個 – SW4

+0

感謝隊友,非常感謝! –