在PHP開發中,表單提交應該非常常用,在所有表單數據中,對於初學者,比較難的恐怕就是復選和多選這種提交數組的處理和上傳處理,今天不說上傳,就說說處理復選和多選下拉列表。一個復選和多選表單如下
<input name="c[]" type="checkbox" value="1" checked>1 <input name="c[]" type="checkbox" value="2">2 <select name="list[]" size="5" multiple> <option value="-1" selected>select</option> <option value="1">1</option> <option value="2">2</option> </select>
這里[]是php特有的,其他如.net、java是沒有的,php如果不加的話是接收不到這些數據的。接收數據$arrc = $_POST['c'];$arrlist = $_POST['list'];這里收到的都是數組,一般不直接存入數據庫,而是轉換成字符串存入,就像 1,2,3這種形式,對於非數字字符串,存儲數據庫以后要想顯示比較方便,直接讀取顯示,而對於數字字符串,我們一般有可能用這些數字所代表的id去數據庫中充當條件,查詢數據,所以使用的時候還要把這些字符串還原成數組,然后通過循環來查詢顯示。
數組與字符串轉換的函數主要就是implode用來轉換成字符串,explode用來還原成數組,如果只是存入數據庫,serialize函數更好,用來數據序列化存入數據庫,取出我們用unserialize來還原成數組,非常方便,這就是兩種用來常用處理數組存儲到數據庫,有沒有更好的我不知道,我在開發中就是主要用的這兩種。
本文主要針對於初學者,一般我們對於圖片處理都是只存儲地址,對於文件上傳也都是存儲地址,以及時間存儲是存儲時間戳,在入庫出庫前對數據檢測。
(原創 by yoby)