用于填充数据库的表单必须与数据库中的各个字段保持最新。如何在动态生成表单的地方插入数据库值
因此一个动态表单域是必需的:
<table>
<tr>
<th>Intermediate</th>
<th>Advanced</th>
<th>No selection</th>
</tr>
<?php
$sth = $dbh->prepare("SELECT SkillName FROM Skill");
$sth->execute();
$tempCounter = 1;
while($row = $sth->fetch()) {
echo ("<tr>
<td colspan=\"3\">
<label for=\"td".$tempCounter."\">".$tempCounter.". ".$row['SkillName']."</label>
</td>
</tr>");
echo ("
<tr>
<td>
<input type=\"radio\" name=\"".$row['SkillName']."\" id=\"tdA".$tempCounter."\" value=\"1\"/>
</td>
<td><input type=\"radio\" name=\"".$row['SkillName']."\" id=\"tdB".$tempCounter."\" value=\"2\"/>
</td>
<td><input type=\"radio\" name=\"".$row['SkillName']."\" id=\"tdC".$tempCounter."\" value=\"\" /></td>
</tr>");
$tempCounter++;
}
?>
</table>
不过,我不知道如何去将数据插入到数据库时,它是不明确的数据可能是什么(特别是SkillName)
在伪代码将是("INSERT INTO PersonSkill (PersonID, SkillName, SkillValue) values ($personid, $skillname, $skillvalue)")
其中$personid
已定义
,$skillname
是在写的形式的时间未知的,并且$skillvalue
是整数。
因此,如果HTTP头信息可能看起来像
- [personid] => 101
- [firstaid] => 2
- [swimming] => 1
- [mechanics] => 0
- [firearms] =>
- [athletics] => 2
我怎么可能迭代此类值?我总是可以使用数据库本身预期值,但拼图的最后一块是躲避我......
while($row = $sth->fetch()) {
if (isset($_POST[''.$row['SkillName'].'']))
// And er... save some variable at this point I suppose, or perhaps append to an array...
}
正在将技能名称存储到会话中供将来使用,这是可行的选项? – Spade
@Kepoly我可以这样做......但那只会推迟问题,当然? – Stumbler
你打算如何插入?按钮点击? jQuery的?表单发布?我假设发布“isset($ _ POST”,但只是想确认。 – jmcclure