2011-02-08 78 views
0

語境發送了一條信息PHP + AJAX

我的工作,我想,以與PHP + AJAX更加動態的項目。 我使用jQuery的AJAX部分,因爲我完全吸入JavaScript,無論如何,它似乎是值得的。 我達到了我的應用程序需要使用表單發送帖子的地步,並且我想使用ajax調用來執行此操作。在我想發送帖子的頁面中,還列出了最近提交的15個帖子。

第一個問題:我應該忘記它,只使用PHP嗎?

行動

用戶寫入的<textarea></textarea>和點擊的東西在<a id="myPostSubmit">Submit</a>那就是我的jQuery腳本管理的東西,如$("#myPostSubmit").live('click', function() { /* here i make the ajax call */ });的處理程序。如果帖子被成功提交,我們會做一些事情(我會在下一節討論它),要麼我們會使用我的showAlert(text)函數提醒用戶,該函數會在其中顯示一個4秒鐘的黑盒子,其中包含text

第二個問題:我應該管理點擊事件在任何其他方式?我應該創建一個函數,例如sendpost(post)並將其附加到HTML onclick=""事件中嗎?

如果該信息發送成功

我會開一個討論約2個選擇:

  1. 我們刷新頁面[實際上沒有 加載整個頁面,但製作 另一個ajax調用,檢索 帖子列表並使其消失 舊的,將PHP文件加載到 檢索新帖子(包括我們剛剛發送的 ),然後在 的帖子列表中出現]。 專業版:1)我們確信用戶在發佈郵件列表後加載的內容是發送的真實郵件。所以它實際上會雙重檢查動作。 2)我們也加載了一些可能的帖子。 缺點:1)我們必須創建一個PHP文件來獲取帖子列表模板,並將該頁面的模板切片爲2個文件。 2)這對我來說並不那麼順利。

  2. 我們只是使用Javascript來獲得發佈模板,將其添加到列表中。 專業:1)我們使它非常流暢,無需重新加載整個頁面。 2)我們不需要任何PHP文件來重新加載頁面。我們只使用Javascript(jQuery)。 缺點:1)我們如何獲得post html模板以將其添加到列表中? 2)我們如何在沒有PHP的情況下獲得用戶(登錄)的信息?

第三個問題:它是更好的第一或第二個解決方案?你會提供更好的第三方案嗎?

PHP頁面

的PHP網頁,將收到此AJAX調用:?p=action&a=sendpost。該頁面需要$_POST['myMessage']被設置,而不是空的,沒有別的。該頁面本身將從cookie中獲取所有用戶的信息,並將管理執行所需的查詢。

應用

這3個部分分爲:應用模板圖書館。基本上每個應用程序頁面都有自己的.app.php.tpl.php文件。

  1. .app.php文件管理頁面的基礎建設 ,使用從庫類 和其他的東西。在 我們的情況下,它從 數據庫檢索數據,並將它們放入 變量。
  2. 該模板在.app.php文件的末尾被調用。 .app.php文件將檢索到的數據和.tpl.php文件發送給模板。
  3. 該庫用於包含我們在應用程序文件中需要的類和函數。

第四問題:這是管理我的web應用程序的一個好辦法嗎?

編輯:如何將警報消息返回給用戶?

我閱讀了一個選項,其中$.ajax()將管理成功或錯誤響應。關於它的文檔非常簡單,我沒有得到它。

第五問題:我應該如何回報(從PHP文件)錯誤 或成功?

+0

你有沒有考慮過jQuery表單插件(http://malsup.com/jquery/form)? – Tomba 2011-02-08 11:48:58

+0

真正的問題不在於提交過程中,而在於接下來會發生什麼(刷新帖子列表)。無論如何,感謝jQuery表單插件,這可能會幫助我很多。 – Shoe 2011-02-08 11:52:37

回答

1

第一個問題:我應該忘記它,只使用PHP嗎?

那麼,你的應用程序將接力於JavaScript,如果你使用AJAX,這幾天我認爲它只是罰款;)

第二個問題:如果我管理的單擊事件中的任何其他方式?我應該創建一個函數,如sendpost(post)並將其附加到HTML onclick =「」事件中?

創建一個函數並綁定onclick。代碼將更具可讀性;)

第三個問題:第1個還是第2個解決方案更好?你會提供更好的第三方案嗎?

我的解決方案:ajax提交表單並在回調中插入新評論到列表中或顯示錯誤消息,如果用戶無法評論。 檢查jQuery serilize()提交表單數據與Ajax。

第四個問題:這是管理我的web應用程序的好方法嗎?

這很好;)當你的應用程序變得越來越大時,你將不得不重新設計它,但是不要這樣做,當目前的解決方案變得難以使用時就去做。 閱讀一些關於構建MVC框架的好書。一般的編程模式。

1

你似乎在一切正常的軌道上。有很多關於如何精確附加事件處理程序,如何重新加載頁面上的數據以及如何組織應用程序等的「最佳實踐」的意見,但我個人寧願建立更多的軟件,而不是擔心這樣的細節。細節將最終呈現給你。

我個人發現,在頁面上更新整個服務器端呈現的HTML塊是更健壯的解決方案,但我看到人們使用模板獲得了出色的結果。