【发布时间】:2016-10-08 12:40:04
【问题描述】:
我已经发布了这个,但最后我没有弄清楚。我有一个带有一些复选框的 php 表单(其中一些被启用,一些被禁用)。其中每一个都有一个来自数据库的 id (id1=1, id2=2, id3=3, ...)。
所以当我提交表单时,我想将这些 id 存储在这样的数据库表中:如果我只选择第一个 id=1 的复选框,我应该在我的表上存储“1”,如果我选择第一个和第三个我应该存储'1、3'。问题是我只选择了第一个并且存储的数据是“1、2、3、4”,因为我有 4 个复选框已启用。
PHP 形式:
<form method='post' action='insert.php'>
.
.
.
while($row_select4 = $stmt_select4->fetch(PDO::FETCH_ASSOC)){
if($form_points>=$row_select4['points']) {
$points = $row_select4['points'];
echo '
<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" onclick="enable_form();" id="checkbox" name="opt[]" value="'.$points.'"></span>
<input type="hidden" name="opt2[]" value="'.$row_select4['id'].'">
<div class="feed-element">
<a href="profile.html" class="pull-left">
<img alt="image" class="img-circle" src="'. $row_select4['image_url']. '"
</a>';
?>
<button type="submit" id="submit" name="eksasrgirwsh" class="btn btn-w-m btn-primary">ΕΞΑΡΓΥΡΩΣΗ</button>
</form>
插入前的IMPLODE:
if(isset($_POST['opt2'])){
foreach ($_POST['opt2'] as $value) {
$gift = $_POST['opt2'];
$sliced = array_slice($gift, 0, -1);
$gift_id = implode(", ", $sliced);
}
我将 $gift_id 存储在表中..
检查:
if(isset($_POST['opt'])){
$total_points = 0;
$points = array_values($_POST['opt']);
foreach ($points as $value) {
$total_points += $value;
}
echo $total_points;
$gift_ids = '';
$gift = array_keys($_POST['opt']);
foreach ($gift as $key => $value) {
$gift_ids = $value;
$gift_ids2 = implode(", ", $gift_ids);
}
echo $gift_ids2;
}
【问题讨论】:
-
那么,你得到什么输出/错误是什么?
-
我想根据用户选择的复选框存储 id。现在我存储
1, 2, 3, 4,即使我只选择 id=1 的复选框.. -
opt2是一个隐藏字段数组,其值与复选框的值相同,但它们总是被发送,您确定不应该在 PHP 中使用opt吗?跨度> -
不,但我使用
opt[]进行另一个插入..这不是问题吗? -
那么我完全不知道你的问题实际上是在问什么......