我是 php 新手,在这里几乎不需要帮助。我有以下代码将多个复选框值插入到相同 ID 的表中:
在我的表格上,我有:
<input type="checkbox" name="subcat[]" value="Mech">Mech
<input type="checkbox" name="subcat[]" value="Ele">Ele
<input type="checkbox" name="subcat[]" value="Civ">Civ
<input type="checkbox" name="subcat[]" value="Air">Air
<input type="checkbox" name="subcat[]" value="BSL">BSL
我检查了“Mech”、“Ele”和“BSL”
和 PHP 插入:
$subcat = $_POST['subcat'];
for($i=0; $i<sizeof($subcat);$i++){
$sql1="INSERT INTO mst_scatadd (party_code,scid)
VALUES ('$pcode',$subcat[$i])";
mysql_query($sql1,$con);
}
db 看起来像...
sctid | party_code | scid
---------------------------------
1 | 01S001 | Mech
2 | 01S001 | Ele
3 | 01S001 | BSL
4 | 01K207 | Main
现在,如果我想编辑复选框,如何将这些值从 db 检索到我的表单中以获得相同的 ID 并使其成为选中状态?
一点帮助将不胜感激!
谢谢你的建议。
编辑1:
大家好!
我已经使用 implode 和 explode 插入和检索复选框值,并且工作正常。感谢@Antoniossss 提出将复选框值保留为数字的良好建议(确保数据库中的列应为VARCHAR)感谢@Barmar 解释explode 的使用并感谢@MarkTWebsite 分享if-else 的想法
插入多个复选框值的代码:
foreach ($_POST['subcat'] as $_subcat)
{
$checksub[] = $_subcat;
} $finalsub = implode(',', $checksub);
$sql="INSERT INTO vendor_mst(party_code, subcat) VALUES ('$pcode','$finalsub')";
我从数据库中检索复选框值的最终代码...
sql="SELECT * FROM vendor_mst WHERE party_code like '".$searchname."'";
$result=mysql_query($sql,$con);
while ($row=mysql_fetch_array($result, MYSQL_BOTH)){
$checksub = explode(',',$row['subcat']);
}
if(in_array("1",$checksub))echo '<input type="checkbox" name="subcat[]" value="1" checked >Mech'; else echo '<input type="checkbox" name="subcat[]" value="1">Mech';
if(in_array("2",$checksub))echo '<input type="checkbox" name="subcat[]" value="2" checked >Ele'; else echo '<input type="checkbox" name="subcat[]" value="2">Ele';
if(in_array("3",$checksub))echo '<input type="checkbox" name="subcat[]" value="3" checked >Civ'; else echo '<input type="checkbox" name="subcat[]" value="3">Civ';
if(in_array("4",$checksub))echo '<input type="checkbox" name="subcat[]" value="4" checked >Air'; else echo '<input type="checkbox" name="subcat[]" value="4">Air';
if(in_array("5",$checksub))echo '<input type="checkbox" name="subcat[]" value="5" checked >BSL'; else echo '<input type="checkbox" name="subcat[]" value="5">BSL';
感谢堆栈溢出!