用於填充數據庫的表單必須與數據庫中的各個字段保持最新。如何在動態生成表單的地方插入數據庫值
因此一個動態表單域是必需的:
<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