版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——PHP中在數(shù)據(jù)庫(kù)中保存Checkbox數(shù)據(jù)PHP中在數(shù)據(jù)庫(kù)中保存Checkbox數(shù)據(jù)
checkbox是一個(gè)分外有用的頁(yè)面表單項(xiàng),在讓用戶舉行多重選擇的處境下,它甚至可以允許用戶選擇全部工程或是一個(gè)都不選。但是,盡管這是一個(gè)分外優(yōu)秀的表單元素,但在我們的工作中,在如何正確地保存選擇項(xiàng)這方面總存在一些易混淆的處境發(fā)生。本文將描述在遵循好的數(shù)據(jù)庫(kù)設(shè)計(jì)原那么的方法下,如何把checkbox選擇項(xiàng)正確地保存在數(shù)據(jù)庫(kù)中。
要求
本文將闡述如何把選擇項(xiàng)正確地保存在用戶數(shù)據(jù)庫(kù)中的方法。盡管這里包括了有用的PHP代碼,但我將從數(shù)據(jù)庫(kù)設(shè)計(jì)的觀點(diǎn)來(lái)表達(dá)它們,所以,你可以很便當(dāng)?shù)厥褂萌魏我粋€(gè)數(shù)據(jù)庫(kù)和服務(wù)器端腳本語(yǔ)言來(lái)實(shí)現(xiàn)。我只是想供給一個(gè)如何做的方法,讓你能應(yīng)用于你自己的站點(diǎn)中。假設(shè)你想運(yùn)行這里的源碼,你需要安裝php、mysql和網(wǎng)絡(luò)服務(wù)器。
例1:雇用站點(diǎn)
假使你被要求做一個(gè)雇用類(lèi)的網(wǎng)站,允許求職的軟件開(kāi)發(fā)人員填寫(xiě)他們的技能,讓雇主能訪問(wèn)這個(gè)站點(diǎn)并根據(jù)求職者的技能找到適合的員工。你也知道,一個(gè)開(kāi)發(fā)人員擁有的技能會(huì)多于一個(gè),因此你抉擇這樣設(shè)計(jì)你的站點(diǎn)。
每一個(gè)求職者將允許訪問(wèn)本站,注冊(cè)一個(gè)用戶,并且輸入他的技能,Checkbox就派上用場(chǎng)了,你可能想作這樣的一頁(yè):
__PHP__MySQL__Zope
__Perl__Javascript__JSP
[提交]
每一個(gè)求職都可以選擇他所擁有的技能。鮮明對(duì)于不同人來(lái)說(shuō)這選擇項(xiàng)是不同的。一個(gè)人可能會(huì)是PHP和Mysql,其它人可能只是JSP。你將如何保存這些選擇呢?一個(gè)很自然的想法是針對(duì)每個(gè)選項(xiàng)建一個(gè)字段,這樣開(kāi)頭可以正常工作。但是隨后你可能會(huì)察覺(jué),當(dāng)你想擴(kuò)展或調(diào)整時(shí),麻煩就來(lái)了,你可能不得不修改你的表布局。
好的方法應(yīng)是這樣的:
你應(yīng)有一個(gè)用戶表包含用戶的注冊(cè)信息,如用戶名、密碼和其它一些你需要的什么內(nèi)容。假使你直接使用本文后面給出的源碼,你要建一個(gè)簡(jiǎn)樸的表如下:
idusername
1User1
2User2
3User3
我們先建一個(gè)表const_skills用如下的SQL語(yǔ)句:
SQLCREATETABLEconst_skills
idintnotnullprimarykey,
valuevarchar20;
現(xiàn)在我們參與技能:
SQLINSERTINTOconst_skillsid,valueVALUES1,PHP;
SQLINSERTINTOconst_skillsid,valueVALUES2,MySQL;
SQLINSERTINTOconst_skillsid,valueVALUES3,Zope;
SQLINSERTINTOconst_skillsid,valueVALUES4,Perl;
SQLINSERTINTOconst_skillsid,valueVALUES5,Javascript;
SQLINSERTINTOconst_skillsid,valueVALUES6,JSP;
你的.const_skills現(xiàn)在應(yīng)是這樣的:
idvalue
1PHP
2MySQL
3Zope
4Perl
5Javascript
6JSP
這個(gè)表只是讓用戶可以選擇相應(yīng)的技能,現(xiàn)在,再建一個(gè)表lookup_skills用如下的SQL:
SQLCREATETABLElookup_skills
idintnotnullauto_incrementprimarykey,
uidint,
skill_idint;
這個(gè)表lookup_skills的目的是供給從用戶表到開(kāi)發(fā)技能表之間的一個(gè)映射關(guān)系。換句話說(shuō),它讓我們保存開(kāi)發(fā)者和他們有的技能,如,當(dāng)求職者完成選擇點(diǎn)擊提交時(shí),我們將填寫(xiě)這個(gè)表用checkbox中被選定的那些值。對(duì)于每一個(gè)選上的技能,我們?cè)谶@個(gè)表中加一條記錄,記錄用戶id及所選項(xiàng)的id。(想必大家都領(lǐng)會(huì)了吧。我譯到這,嘿嘿)
在我們看這個(gè)插入記錄的代碼之前,我們先設(shè)計(jì)一下這個(gè)頁(yè)面,應(yīng)有的內(nèi)容有一個(gè)表單,我們可以查詢的數(shù)據(jù)庫(kù)并且取checkbox標(biāo)簽從const_skills表中,建這個(gè)checkbox表單項(xiàng)。
代碼如下:
?php
/*insertcodetoconnecttoyourdatabasehere*/
/*getthecheckboxlabels*/
$skills=get_checkbox_labelsconst_skills;
/*createthehtmlcodeforaformattedsetof
checkboxes*/
$html_skills=make_checkbox_html$skills,3,400,skills[];
?
html
PHP中在數(shù)據(jù)庫(kù)中保存Checkbox數(shù)據(jù)
body
br
formname=skillsmethod=POSTaction=insertskills.php
Checkoffyourwebdevelopmentskills:
?echo$html_skills;?
br
inputtype=submitvalue=Submit
/form
/body
/html
?php
functionget_checkbox_labels$table_name
/*makeanarray*/
$arr=array;
/*constructthequery*/
$query=SELECT*FROM$table_name;
/*executethequery*/
$qid=mysql_query$query;
/*eachrowintheresultsetwillbepackagedas
anobjectandputinanarray*/
while$row=mysql_fetch_object$qid
array_push$arr,$row;
return$arr;
/*Printsanicelyformattedtableofcheckboxchoices.
$arrisanarrayofobjectsthatcontainthechoices
$numisthenumberofelementswidewedisplayinthetable
$widthisthevalueofthewidthparametertothetabletag
$nameisthenameofthecheckboxarray
$checkedisanarrayofelementnamesthatshouldbechecked
*/
functionmake_checkbox_html$arr,$num,$width,$name,$checked
/*createstringtoholdouthtml*/
$str=;
/*makeit*/
$str.=tablewidth=$widthborder=0n;
$str.=trn;
/*determineifwewillhavetocloseadd
aclosingtrtagattheendofourtable*/
ifcount$arr%$num!=0
$closingTR=true;
$i=1;
ifisset$checked
PHP中在數(shù)據(jù)庫(kù)中保存Checkbox數(shù)據(jù)
/*ifwepassedinanarrayofthecheckboxeswewant
tobedisplayedaschecked*/
foreach$arras$ele
$str.=tdinputtype=checkboxname=$namevalue=$ele-id;
foreach$checkedas$entry
if$entry==$ele-value
$str.=checked;
continue;
$str.=;
$str.=$ele-value;
if$i%$num==0
$str.=/trntr;
else
$str.=/tdn;
$i++;
else
/*wejustwanttoprintthecheckboxes.nonewillhavechecks*/
foreach$arras$ele
$str.=tdinputtype=checkboxname=$namevalue=$ele-id;
$str.=$ele-value;
if$i%$num==0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025貴州貴陽(yáng)市烏當(dāng)區(qū)新天九年制學(xué)校秋季招聘第十六批臨聘教師2人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026廣西東興國(guó)家重點(diǎn)開(kāi)發(fā)開(kāi)放試驗(yàn)區(qū)管理委員會(huì)招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 2026廣東深圳市福田區(qū)下沙實(shí)驗(yàn)幼兒園招聘1人備考題庫(kù)及答案詳解一套
- 2026年紅河州個(gè)舊市城市發(fā)展集團(tuán)有限公司就業(yè)見(jiàn)習(xí)基地招募見(jiàn)習(xí)生備考題庫(kù)(20人)及答案詳解(易錯(cuò)題)
- 2025云南盛佳新材料有限責(zé)任公司招聘9人備考題庫(kù)及一套答案詳解
- 2025菏澤東明縣職業(yè)中等專(zhuān)業(yè)學(xué)校引進(jìn)高層次急需緊缺人才備考題庫(kù)完整參考答案詳解
- 2026昆明高新技術(shù)產(chǎn)業(yè)開(kāi)發(fā)區(qū)管理委員會(huì)公開(kāi)招聘合同聘用制工作人員備考題庫(kù)(18人)及一套參考答案詳解
- 2026四川綿陽(yáng)科技城低空裝備檢驗(yàn)檢測(cè)認(rèn)證有限責(zé)任公司招聘測(cè)試技術(shù)崗等崗位7人備考題庫(kù)及一套完整答案詳解
- 2026中國(guó)農(nóng)業(yè)大學(xué)特多孔子學(xué)院國(guó)際中文教育志愿者招聘1人備考題庫(kù)及一套答案詳解
- 2026內(nèi)蒙古鄂爾多斯東勝區(qū)祥和小學(xué)招聘教師備考題庫(kù)及完整答案詳解一套
- 影視表演知識(shí)培訓(xùn)課件
- 石墨烯神經(jīng)保護(hù)-洞察與解讀
- 車(chē)輛中心面試車(chē)輛管理題
- 消除艾滋病、梅毒和乙肝母嬰傳播鄉(xiāng)村醫(yī)生培訓(xùn)會(huì)-課件
- 制造企業(yè)總經(jīng)理年終總結(jié)
- 供應(yīng)室去污區(qū)工作總結(jié)
- 隧道防水知識(shí)培訓(xùn)課件
- 學(xué)堂在線 雨課堂 學(xué)堂云 中國(guó)傳統(tǒng)藝術(shù)-篆刻、書(shū)法、水墨畫(huà)體驗(yàn)與欣賞 章節(jié)測(cè)試答案
- 陰莖假體植入術(shù)改良方案-洞察及研究
- 神經(jīng)外科規(guī)范化培訓(xùn)體系綱要
- 互助與團(tuán)隊(duì)精神主題班會(huì)課件
評(píng)論
0/150
提交評(píng)論