最近這段時間,在用php做一個會議室預定系統(tǒng),由于剛開始接觸php語言,所以對于語法不是很熟悉,在這個學習和制作項目的過程中,發(fā)現(xiàn)了一些問題,借著今天周末的時間,總結(jié)一下,希望能對像我這樣的菜鳥,有所幫助,如果發(fā)現(xiàn)bug或者有爭議的地方,歡迎指出,溝通互動與交流,謝謝。
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為林芝企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,林芝網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。我使用的是yaf框架,ngnix服務(wù)器,mysql數(shù)據(jù)庫,php5.5。關(guān)于系統(tǒng)的安裝,請參考上一篇帖子,地址如下:http://mig1924615.blog.51cto.com/9385857/1755532
剛開始覺得,用php做一個網(wǎng)頁版的會議預定系統(tǒng),沒有那么復雜,做幾個按鈕,做一個表格,再向前端請教一下,配一個好看點的樣式就ok了,但做起來就會發(fā)現(xiàn),眼高手低了。
簡單畫了一個草圖,如下:
首先,會議預定部分,添加的信息不僅要加入到數(shù)據(jù)庫中,還要在添加成功的同時,顯示到當天的會議預定信息中,而你要做的就是考慮,如何將這些信息,映射到右邊的顯示面板中。
其次,左邊的日歷,點擊之后,右邊的表格會顯示,相應(yīng)日期的預定會議信息,并且要實現(xiàn)會議跨行處理。
然后,左下方的按鈕,取消會議相對比較簡單,添加會議,在model里面的logic部分,需要進行處理,加一些判斷,邏輯清楚的話,應(yīng)該問題也不大,那么關(guān)鍵在于修改會議,相應(yīng)的處理,以及數(shù)據(jù)得更新,頁面的顯示等等,需要處理好。
涉及的技術(shù),關(guān)鍵部分在于JQuery和Ajax部分多一些,php相關(guān)部分可能會比較容易上手,但是前兩個,需要注意的地方有很多。
下面詳細說明一下:
右側(cè)的表格,不是被寫死的,所有的數(shù)據(jù)顯示,包括時間段,預訂信息,會議室名稱等等,都是動態(tài)生成的,會通過數(shù)據(jù)庫實時讀取信息,進行動態(tài)顯示,添加成功后,會顯示相應(yīng)的信息,如果輸出這樣的樣式,確實思考了一段時間,如果邏輯理順通的話,就會快很多。所以,切記,不要急于編程,要先理清邏輯,然后再去寫代碼,這樣,就算有不bug,你也會邏輯清晰,進行下一步的修改,否則,會被自己的代碼害得很慘。
其次,默認情況下,表格顯示的是,默認當天的會議信息,點擊日歷部分,可以顯示相應(yīng)日期的按鈕,這部分,需要了解,你使用的JS日歷插件,這里,給你們推薦兩款,特別實用,并且功能都很強大,其中datetimepiker還可以滿足時間選擇的需要。
JS插件鏈接如下:鏈接:http://pan.baidu.com/s/1o7Qb52q 密碼:maci
3. 需要注意的是,右側(cè)的表格,數(shù)據(jù)的信息是通過foreach循環(huán)數(shù)組生成的,那么,你會發(fā)現(xiàn),它是橫向生成的,那么對于會議的預訂信息顯示,以及跨行處理,要進行認真的思考,處理好這里的邏輯關(guān)系,特別提示一下,否則,生成的表格會很難看,不會是這樣畫出來的預期效果。
4. 關(guān)于數(shù)據(jù)傳送的問題,一般都會想到Ajax的JSON方式,使用POST將它傳動到controller層,這個沒有錯,比如會議室的預定信息,是這么處理的,然后在logic層進行判斷,是否會議室有沖突,信息是否填寫完全等等,然后做出相應(yīng)的響應(yīng)和反饋信息。再使用display方法,將其信息顯示到index界面。
--------------但是?。?!-----------
如果是這樣呢?我選擇好相應(yīng)的日期,需要將其傳到controller層,然后根據(jù)日期,查詢出會議預定信息,然后再讓其顯示到index界面,這時候,你還能用ajax傳遞參數(shù)嗎???
如果你說能,那你肯定沒有嘗試過,不妨做一個實驗。
我可以清楚的告訴你,不能,因為,你會一直得到,響應(yīng)超時的彈框顯示。。。
ajax不能和display同時使用,那么,我如何將這個參數(shù)傳遞過去呢?
--------------靠它?。?!-----------
header(“Loacation:帶參數(shù)的URL”);
然后,在controller獲取到相應(yīng)的參數(shù),不同的框架url定義形式不一樣,參數(shù)格式也不一樣,可以自己查詢一下相應(yīng)的資料,這樣,參數(shù)就可以讓index使用了,日歷部分的功能也就完善了。
5. 修改會議信息,是綁定的點擊函數(shù),可以在×××部分點擊,然后就能進行修改,這里需要注意的是,需要根據(jù)會議id去進行參數(shù)綁定,然后顯示到一個模態(tài)框上,當模態(tài)框彈出時,顯示的會是,修改會議的信息,然后再走一遍添加會議的流程,但是不可以使用同一個模態(tài)框,因為,需要單獨走一個流程,相同的原理,判斷也是相同。
6. 這里面,還有一個邏輯比較關(guān)鍵的就是:時間段的判斷,如果判斷開始時間和結(jié)束時間的包含問題,其中會議預定沖突,只需找出是否包含即可,那么,會議顯示部分,由于每次只判斷一行,所以要重復判斷,包含問題,尤其是邊界情況,需要思考清楚。
7. 下一步做的,是進一步完善會議的顯示功能,優(yōu)化界面,然后,將登陸功能,分為不同權(quán)限,進行級別劃分等等。
以上就是最近項目的一些簡單總結(jié),可能寫的不太詳細,如果哪部分不太清楚,可以留言,然后給你詳細解答。由于涉及系統(tǒng)的公司性質(zhì),所以就不貼代碼啦,請理解。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。