康瑞 李果 張萌 天津職業技術師范大學
筆者以山西師范大學教育技術學專業的本科學生為調查對象,采用問卷的形式針對是否參加過中小學教師資格考試進行調查。共收到145份有效問卷,其中40%的學生已參加考試,60%的學生還未參加。參與過考試的學生中有84.48%的學生認為需要一款練習題庫,有89.66%的學生愿意使用網站進行練習。因此,筆者以《信息技術學科知識與教學能力》為主要內容基于網站開發了一款題庫,實現資源的數字化,以幫助學生通過考試。

圖1 前臺用戶界面的總體結構
快速練習:能夠動態從后臺數據庫中隨機抽取題目供用戶練習;能夠根據用戶的備考時間不同,自動呈現合適的題量;提交答案之后能給出得分;能夠呈現所有題目的解析。
歷年真題:擁有多套真題;提交答案后需要給出得分;能夠呈現所有題目的解析;能夠計時考試,時間截止后自動提交試卷。
題目檢索:遇到不會的題目可以直接在題庫中進行檢索,提高信息的可靠性,減少沒有必要的時間耗費,如若沒有檢索到相關內容,可以選擇在題庫中加入。
資料包:幫助用戶在做題前理解相關知識點;提供視頻課程以及精選知識點。
面試題目:在考試后期,提供面試題目,幫助用戶了解考試內容和一些相關流程。
中小學教師資格考試并沒有指定的教材,因此歷年真題具有很高的參考價值,所以,筆者將近六年的真題以及一些模擬題、預測題錄入題庫中以方便用戶進行練習。
(1)用戶登錄注冊
注冊頁面包括用戶名、設置密碼和確認密碼三個輸入框。注冊時需要規范輸入信息,如果不符合要求,網站就會根據有誤的信息彈出“錯誤:該用戶名已存在”“錯誤:密碼長度不符合,請重新填寫”“注冊失敗,請重新填寫”“密碼不一致,返回重試”的提示。注冊界面的信息插入到數據表的相關代碼如圖2所示。在注冊成功后,頁面會直接跳轉到登錄頁面。

圖2 用戶信息輸入數據庫
(2)快速練習
在登錄成功后,網站直接跳轉到“快速練習”頁面。網站默認在數據庫中抽取15道題進行練習。用戶可以根據自己備考時間的不同,在左上方的輸入框中輸入備考時間,后臺會根據提交的數字使用for循環語句返回一定數量的題目,以滿足不同用戶的個性化需要。當題目返回后,用戶可以直接在網站上進行作答,“提交”后會顯示得分,點擊“解析”可以查看題目的答案,并對錯題進行標紅處理。
(3)題目檢索
檢索功能可以幫助用戶快速查找到那些有模糊記憶但又未能掌握的題目。實現這個功能可以使用SQL語句的like進行模糊檢索,找到含有該關鍵詞的題目并進行輸出。
(1)數據庫的作用和選擇
數據庫可以存儲記錄網站數據,如用戶的用戶名、密碼、題目等內容。WampServer是一款帶有服務器的動態網站開發工具,功能多,可視化程度好,可以在64位的配置環境下運行,因此筆者選擇該工具開發平臺。
(2)用戶信息數據表register
數據表共有四個字段(如圖3),其中id設為主鍵并進行自動編號,username設為唯一值,不可重復,避免用戶名重復導致數據混亂,password、pwd兩個字段是用來保證用戶在注冊時輸入的兩次密碼是一致的。此數據表用來存放用戶的注冊信息,方便在登錄時進行身份驗證。管理者可以通過后臺自行刪除一些用戶信息。

圖3 register數據表的字段
(3)題庫信息數據表collection
collection數據表包含11個字段,如圖4所示。這些字段用來存儲題的編號、內容以及解析。該數據表主要用于在“快速練習”以及“題目搜索”模塊返回題目數據,這樣方便隨時往數據庫中添加,并且不需要改動前端代碼,減少了后期維護網站的工序。

圖4 collection數據表的字段
(4)數據庫的連接
數據表需要與前端網頁建立連接,才能將數據返回網頁呈現。因此,要在用戶注冊、登錄、快速練習和題目檢索的代碼模塊間建立連接。本網站將數據庫接口的代碼寫在了PHP文件中,涉及數據庫連接的網頁只需要在該網站代碼的PHP語句中寫入“include('conn.php');”就可以連接到數據庫,連接數據庫的代碼如下頁圖5所示。

圖5 連接數據庫的代碼
問題一:根據用戶需要動態返回題目及其答案
在快速練習模塊,網站要根據輸入框中提交的數字返回不同的題量,以滿足不同用戶備考的需求。因為數字是前端提交過來的,所以PHP代碼中需要有一個變量days接受前端傳遞的數值,然后用題庫的題量除以天數就等于每日用戶需要完成的練習。接著,借助for循環語句將數據庫的數據輸出,具體代碼如下頁圖6所示。需要注意的是,代碼中不同題的name屬性需要進行區分,以保證每道題的選項不干擾;同一題的name屬性需要統一,以保證用戶只可以選擇一個選項進行提交。數組$row是存放數據庫中的返回值,使其在前端一行行顯示。

圖6 for循環語句
問題二:試卷重復提交
在開發過程中遇到如下問題:用戶提前提交試卷后,繼續停留在這個網頁,當倒計時為0時,試卷會被再次提交。簡單來說,用戶提前交卷會導致試卷重復提交。
針對這一問題,筆者對提交試卷的情況進行假設:①用戶自己提前交卷;②倒計時結束網頁自動提交。這兩種情況只能發生其中一種才能保證試卷只提交一次,要判斷兩種情況是否發生最直接的辦法就是判斷是否提交了試卷。因此,筆者在JavaScript的代碼中設置了一個變量issubmit,并賦給它初始值false,只有倒計時變量times為0并且issubmit為false時,網頁才會自動點擊“提交”按鈕以交卷。但如果用戶自己提前提交,則賦給issubmit值true,這樣就保證試卷自動提交的條件無法滿足。通過這個變量值的判斷就可以使試卷只提交一次,以達到預期效果。
問題三:解析的隱藏與顯示
點擊“解析”按鈕需要將題目的解析呈現出來,因此在未點擊時需要將其屬性隱藏,即把display屬性設置為none;在點擊按鈕后,利用JavaScript執行函數,讀取name為demo的標簽,并設置其display為block使其顯示出來。具體代碼如圖7所示。

圖7 使“解析”顯示的JavaScript代碼
本網站滿足了用戶的個性化需求,增強了用戶學習的動力,引導他們主動地參與到備考環節。另一創新就是在題庫系統中添加了搜索的功能。互聯網快速發展,網絡上的信息良莠不齊,檢索者需要在眾多信息中進行篩選,這會浪費大量的時間,因此在題庫網站中添加搜索功能可以為用戶節約大量時間。