介绍
checkbox是一个可怜低价的页面表单项,在让顾客展开多种选择的情况下,它竟然足以允许顾客筛选一切种类恐怕贰个都不选。不过,就算那是二个特别美好的表单成分,但在大家的专门的学问中,在哪些科学地保留选取项那地点总存在一些易混淆的状态产生。本文将叙述在根据好的数据库设计基准的点子下,怎么着把checkbox选取项精确地保留在数据库中。
要求本文将演说如何把选用途准确地保存在客户数据库中的方法。固然此处蕴含了平价的PHP代码,但自个儿将从数据库设计的视角来抒发它们,所以,你能够很方便地接受任何二个数据库和服务器端脚本语言来贯彻。作者只是想提供三个如何是好的情势,让你能应用于你和煦的站点中。借令你想运转这里的源码,你供给设置php、mysql和互连网服务器。
例1:招徕约请站点
假若你被供给做三个招徕约请类的网站,允许求职的软件开拓职员填写他们的手艺,让雇主能访谈那几个站点并基于求职者的技术找到适当的职工。你也领略,一个开拓人士具有的本驾驭多于三个,由此你说了算那样设计你的站点。
每三个求职者将同意访问本站,注册三个客户,并且输入他的工夫,Checkbox就派上用项了,你也许想作那样的一页:
__ PHP __ MySQL __ Zope __ Perl __ Javascript __ JSP
[提交]
每一个求职都得以选用她所持有的技能。显明对于不一致人来讲那选取项是差异的。壹位或然会是PHP和Mysql,别的人也许只是JSP。你将何以保存这个选取啊?叁个很当然的主见是针对每种选项建一个字段,那样发轫能够平常干活。不过随后你大概会发觉,当您想扩张或调度时,麻烦就来了,你也许只好修改你的表构造。
好的办法应是如此的:
你应该一个顾客表包括客户的注册消息,如客户名、密码和别的一些你需求的什么内容。假若你一向运用本文后面给出的源码,你要建八个轻便的表如下:
id username 1 User1 2 User2 3 User3 我们先建三个表 “const_skills”
用如下的 SQL 语句: SQL> CREATE TABLE const_skills ( id int not null
primary key, value varchar; 以后大家参预本领: SQL> INSERT INTO
const_skills VALUES ; SQL> INSERT INTO const_skills VALUES ;
SQL> INSERT INTO const_skills VALUES ; SQL> INSERT INTO
const_skills VALUES ; SQL> INSERT INTO const_skills VALUES ;
SQL> INSERT INTO const_skills VALUES ; 你的 const_skills
现在应是这么的: id value 1 PHP 2 MySQL 3 Zope 4 Perl 5 Javascript 6 JSP
这一个表只是让顾客能够接收相应的手艺,以往,再建多个表 lookup_skills
用如下的SQL: SQL> CREATE TABLE lookup_skills ( id int not null
auto_increment primary key, uid int, skill_id int );
这个表lookup_skills的目标是提供从客户表到开垦工夫表之间的叁个辉映关系。换句话说,它让大家保留开采者和他们某些技巧,如,当求职者完结选取点击提交时,大家将填写这么些表用checkbox中被选定的那几个值。对于每二个选上的本领,大家在这里个表中加一条记下,记下客户id及所接纳的id。
在大家看那几个插入记录的代码以前,大家先规划一下以此页面,应有的剧情有四个表单,咱们能够查询的数据库况且取checkbox标签从const_skills表中,建那些checkbox表单项。
代码如下: < ?php /* insert code to connect to your database here
*/ /* get the checkbox labels */ $skills = get_checkbox_labels; /*
create the html code for a formatted set of checkboxes */ $html_skills
= make_checkbox_html($skills, 3, 400, “skills[]”); ? > < html
> < body > < br > < form name=”skills” method=”POST”
action=”insertskills.php” > Check off your web development skills:
< ? echo “$html_skills”; ? > < br > < input
type=”submit” value=”Submit” > < /form > < /body > <
/html > < ?php function get_checkbox_labels { /* make an array
*/ $arr = array(); /* construct the query */ $query = “SELECT * FROM
$table_name”; /* execute the query */ $qid = mysql_query; /* each
row in the result set will be packaged as an object and put in an array
*/ while($row= mysql_fetch_object { array_push; } return $arr; } /*
Prints a nicely formatted table of checkbox choices. $arr is an array of
objects that contain the choices $num is the number of elements wide we
display in the table $width is the value of the width parameter to the
table tag $name is the name of the checkbox array $checked is an array
of element names that should be checked */ function
make_checkbox_html($arr, $num, $width, $name, $checked) { /* create
string to hold out html */ $str = “”; /* make it */ $str .= “<
table width=”$width” border=”0″ >n”; $str .= “< tr >n”; /*
determine if we will have to close add a closing tr tag at the end of
our table */ if % $num != 0) { $closingTR = true; } $i = 1; if { /* if
we passed in an array of the checkboxes we want to be displayed as
checked */ foreach { $str .= “< td >< input type=”checkbox”
name=”$name” value=”$ele- >id””; foreach { if ($entry == $ele-
>value) { $str .= “checked”; continue; } } $str .= ” >”; $str .=
“$ele- >value”; if { $str .= “< /tr >n< tr >”; } else {
$str .= “< /td >n”; } $i++; } } else { /* we just want to print
the checkboxes. none will have checks */ foreach { $str .= “< td
>< input type=”checkbox” name=”$name” value=”$ele- >id” >”;
$str .= “$ele- >value”; if { $str .= “< /tr >n< tr >”; }
else { $str .= “< /td >n”; } $i++; } } /*PHP中在数据库中保存Checkbox数据_php基础_脚本之家。 tack on a closing tr
tag if necessary */ if { $str .= “< /tr >< /table >n”; }
else { $str .= “< /table >n”; } return $str; } ? >

发表评论

电子邮件地址不会被公开。 必填项已用*标注