gpt4 book ai didi

php - 内爆函数未按预期存储数据

转载 作者:行者123 更新时间:2023-11-29 11:29:12 26 4
gpt4 key购买 nike

我已经发布了这个,但最后我没有弄清楚这一点。我有一个带有一些复选框的 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>

插入前内嵌:

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,而是使用复选框的 name 属性来执行此操作:

'...
<input type="checkbox" onclick="enable_form();" id="checkbox" name="opt['. $row_select4['id'].']" value="'.$points.'"></span>
...';

对于 id 3 记录,复选框的名称类似于 name="opt[3]"

在处理表单提交的 php 脚本中 array_keys($_POST['opt']) 将为您提供礼物 ID,而 array_values($_POST['opt']) 将返回积分。您将知道哪个点与哪个礼物 ID 相关联,因为 $_POST['opt'] 的键是礼物 ID。

还请注意,将多个值存储在单个字段中的逗号分隔字符串中并不是一个好的做法。您应该标准化数据结构并将单独的值存储在单独的记录中。

关于php - 内爆函数未按预期存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37699215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com