【发布时间】:2016-10-02 03:09:49
【问题描述】:
我试图在我的数据库表中存储一个字符串(如 1、2、3、...),但存储的数据只有 1(我在表列中只看到 1,而不是 1、2、3, ...)。我想从 php 表单中发布 checkbox_id 并将这些数字存储在表格列中(数字取决于选中的复选框以及选中的复选框数量)。
代码如下:
<form action="insert.php" method="post"><div>
<div class="feed-activity-list"><div style="border: 0.5px solid green; border-right-style:none;" class="input-group m-b"><span class="input-group-addon">
<input type="checkbox" id="checkbox" name="opt[]" value="'.$points.'"></span>
<input type="hidden" name="opt2[]" value="'.$row_select4['id'].'"> </div></div>
提交按钮(在 php echo 之外):
<button type="submit" class="btn btn-w-m btn-primary">ΕΞΑΡΓΥΡΩΣΗ</button>
</form>
插入.php:
if(isset($_POST['opt2'])){
foreach ($_POST['opt2'] as $value) {
$gift = $_POST['opt2'];
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(" ", $sliced);
}
echo $gift_id;
$stmt_insert = $conn->prepare("INSERT INTO transactions (gift_id) VALUES (:gift_id)"));
$stmt_insert->bindParam(':gift_id', $gift_id);
$stmt_insert->execute();
【问题讨论】:
-
implode(" ",...)应该是implode(",", ...),这里不用foreach。 -
$_POST['opt2']中有什么内容??? -
<input type="hidden" name="opt2[]" value="'.$row_select4['id'].'">.我想发布每个选中的复选框。对吗? -
所以只需使用
$gift_id = implode(",", array_filter($_POST['opt2']));并存储$gift_id。