我的工作,我想,以與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)
並將其附加到HTMLonclick=""
事件中嗎?
如果該信息發送成功
我會開一個討論約2個選擇:
我們刷新頁面[實際上沒有 加載整個頁面,但製作 另一個ajax調用,檢索 帖子列表並使其消失 舊的,將PHP文件加載到 檢索新帖子(包括我們剛剛發送的 ),然後在 的帖子列表中出現]。 專業版:1)我們確信用戶在發佈郵件列表後加載的內容是發送的真實郵件。所以它實際上會雙重檢查動作。 2)我們也加載了一些可能的帖子。 缺點:1)我們必須創建一個PHP文件來獲取帖子列表模板,並將該頁面的模板切片爲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
文件。
- 的
.app.php
文件管理頁面的基礎建設 ,使用從庫類 和其他的東西。在 我們的情況下,它從 數據庫檢索數據,並將它們放入 變量。 - 該模板在
.app.php
文件的末尾被調用。.app.php
文件將檢索到的數據和.tpl.php
文件發送給模板。 - 該庫用於包含我們在應用程序文件中需要的類和函數。
第四問題:這是管理我的web應用程序的一個好辦法嗎?
編輯:如何將警報消息返回給用戶?
我閱讀了一個選項,其中$.ajax()
將管理成功或錯誤響應。關於它的文檔非常簡單,我沒有得到它。
第五問題:我應該如何回報(從PHP文件)錯誤 或成功?
你有沒有考慮過jQuery表單插件(http://malsup.com/jquery/form)? – Tomba 2011-02-08 11:48:58
真正的問題不在於提交過程中,而在於接下來會發生什麼(刷新帖子列表)。無論如何,感謝jQuery表單插件,這可能會幫助我很多。 – Shoe 2011-02-08 11:52:37