这是我现有的代码 我的db看起来像这样
req table
test_id(auto increment) test_work varchar(50)
<?php
include_once '../connect.php'; //database connection
if($_COOKIE["Utype"]!="Logistic")
{
header("Location: login.php");
}
if(!isset($_POST['mat']))
{
$checkboxValue = false;
} else {
$checkboxValue = $_POST['mat'];
}
$values = implode(",", $_POST["mat"]);
$sql="Insert into req(test_work)
values ('$values')";
$result=mysql_query($sql);
?>
<script>
function toggle(source) {
checkboxes = document.getElementsByName('mat[]');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
}
}
$('input[type="checkbox"]').on('change', function(e){
if($(this).prop('checked'))
{
$(this).next().val(1);
} else {
$(this).next().val(0);
}
});
</script>
<form name="form" action="test.php" method="post">
<table border="1" width="200px" style="position:relative;top:0px;font-family:tahoma;font-size:12px;border-collapse:collapse">
<tr style="background-color:#f3f3f3">
<th width="2%"></th>
<th height="20px" width="15%">Work Order ID</th>
</tr>
<?php
$resource=mysql_query("Select * from test",$con);
while($result2=mysql_fetch_array($resource))
{
?>
<tr style="background-color:#ffffff">
<td align="center"><input type="checkbox" name="mat[]" id="mat" value="<?php echo $result2["id"]; ?>"/><?php echo $result2["id"]; ?></td>
<td><?php echo $result2["name"]; ?></td>
</tr>
<?php };?>
</table>
<input style="color:#FFFFFF;position:relative;width:70px"type="submit" name="submit" id="submit" value="Save" class="imgClass" height="50px">
</form>
这只能插入一个选中的复选框。但如果我检查多个复选框,它只会插入一个值。
如何执行单个和多个(使用逗号分隔)插入? 像
好像我从数组中选择了四个复选框
req table
test_id(auto increment) test_work varchar(50)
23 1, 2, 3, 4
当我只选择一个复选框
时,它会省略逗号 req table
test_id(auto increment) test_work varchar(50)
23 1
答案 0 :(得分:0)
因此,不是将一条记录插入到req中,并且test_work的值为'val1,val2,val3',您希望它插入三条记录,其值为'val1','val2','val3',对吗?
在这种情况下,试试这个:
if(!isset($_POST['mat']))
{
$checkboxValue = false;
} else {
$checkboxValue = $_POST['mat'];
foreach($_POST['mat'] as $val)
{
$query = "INSERT INTO req (test_work) VALUES ('$val')";
mysql_query($query);
}
}
答案 1 :(得分:0)
这很有效。您的代码将采用多个复选框并生成一个字符串,如:1,2,5。
这将在您的数据库中插入一行&#34; test_work&#34; column的值为1,2,5。