我已經發布了這個,但最後我沒有弄清楚這一點。我有一些複選框的PHP表單(其中一些是啓用和一些禁用)。其中每一個都有一個來自數據庫的id(id1 = 1,id2 = 2,id3 = 3,...)。Implode函數沒有按預期存儲數據
因此,當我提交表單時,我想將這些id存儲在數據庫表中,如下所示:如果我只選擇id = 1的第一個複選框,我應該在表格中存儲'1',如果我選擇1st第三我應該存儲'1,3'。問題是我只選擇1st,而存儲的數據是'1,2,3,4',因爲我有4個複選框ENABLED。
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>
插入之前爆:
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;
}
那麼,你會得到什麼輸出/什麼是錯誤? – Epodax
我想存儲ID的取決於用戶選擇哪個複選框。現在我存儲'1,2,3,4',即使我只選擇ID = 1的複選框.. – platanas20
'opt2'是一個隱藏字段的數組與與複選框相同的值,但它們始終發送,您確定不應該在PHP中使用'opt'嗎? –