我的网站上有一个表单,用户在注册时填写。所有注册都存储在“注册”表中。表格结构如下:
id,username,password,firstname,lastname,email,gender,jobtitle,f1,country,f2,fbook,f3,fmovie,f4。
jobtitle , 国家 , fbook 和 fmovie 是下拉菜单。这些dropdwon菜单的值也存储在另一个名为“extrainfo”的表中,具有以下结构: jobtitle,f1,country,f2,fbook,f3,fmovie,f4。
当用户提交表单时,它应检查作业标题,国家/地区,fbook和fmovie字段中的值,并从“extrainfo”表中检索值。
因此,如果用户在jobtitle下拉菜单中选择“DECORATOR”,它应该从“extrainfo”表中的f1列获取值,并将其插入“registration”表中的f1列。
我怎样才能做到这一点?
答案 0 :(得分:0)
通过读取提交的值并通过选择数据匹配的行与SQL查询将其与数据库中的数据进行比较,即可实现此目的。
答案 1 :(得分:0)
表单提交后尝试这样
通过$ _POST
获取选择框的值$jobtitle = $_POST['jobtitle']; //name of select box is assumed as jobtitle
从extrainfo获取值
$r = mysql_query("select f1 from extrainfo where jobtitle='$jobtitle'); //get f1 from extrainfo
$j = mysql_fetch_row($r);
为所有列
插入这样的注册表mysql_query("insert into registration(f1)values('$j[0]')"); //insert the f1 into registration table
答案 2 :(得分:0)
您可以使用其中已有的值构建下拉列表,而不是事后查找它们:
<SELECT name="jobtitle">
<OPTION value="f1_value">Decorator</OPTION>
<OPTION value="f1_value">Welder</OPTION>
</SELECT>
其中f1_value
是每个作业标题的extrainfo
表中的值。如果您首先将数据读入数组,也可以使用foreach
结构来构建<OPTION>...</OPTIONS>
:
<?php
$q="select * from extrainfo";
if ($r=mysql_query($q))
{
$m=array();
while ($row=mysql_fetch_assoc($m))
{
$m[]=$row;
}
?>
<SELECT name="jobtitle">
<?php
foreach ($m as $line)
{
echo '<OPTION value="'.$line['f1'].'">'.$line['jobtitle'].'</OPTION>';
}
?>
</SELECT>