gpt4 book ai didi

php - 填充复选框,然后将选择更新到 mysql

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

我目前有一个表单,其中的复选框是使用以下方式从 MySQL 数据库填充的:

//possible array values in row(value)
$values = array('F', 'R', 'C', 'T', 'S');
// $names = array('football', 'rugby', 'cricket', 'tennis', 'swimming')
$sql = "SELECT value, description
FROM table_1
WHERE ID = '$userid'";
$result = mysqli_query($conn, $sql);
while ($row= mysqli_fetch_array($result)) {
$db_values[] = $row['0'];

然后使用以下方法预先选择复选框:

<?php
foreach ($values as $value) {
$selected = in_array($value, $db_values) ? ' checked="checked"' : null;
echo "<input type='checkbox' name='sports[]' id ='sport' value=" . $value . $selected . "/>" . $value . "<br />";
} ?>

这部分工作正常,输出为:

<input type='checkbox' name='sports[]' id ='sport' value='F' checked='checked'/>F

第 1 部分:我正在尝试进一步编辑它,以便在复选框旁边显示名称而不是像这样的值:

<input type='checkbox' name='sports[]' id ='sport' value='F' checked='checked'/>football

有人对此有什么想法吗?

第 2 部分:我现在尝试更新选中/取消选中的任何复选框,并将值更新到同一个数据库表中。我尝试过:

$sports = $_POST["sports"];
for ($i=0; $i < sizeof($sports); $i++) {
$sql = "UPDATE table_1
SET value='$sports[$i], ID='$userid'
WHERE ID='$userid'";
$result = mysqli_query($conn, $sql);

但是我可能以完全错误的方式处理这部分,但我不知道如何让它工作。

我不断收到错误:

Duplicate entry 'ID-value' for key 'PRIMARY'

对于我提交的每一个选择

提前谢谢您的帮助。

编辑......................................

像这样的表_1

ID   |  Sport
John | F
John | C
John | R
Paul | R

如果我选中复选框然后单击更新,就会出现问题。如果用户没有条目并且我选中该框,它似乎更新得很好ID-Sport的组合为主键

最佳答案

同一个 id 在一个页面中不应重复出现一次。

并用 ' 括起 value 属性

<?php
foreach ($values as $value) {
$selected = in_array($value, $db_values) ? ' checked="checked"' : null;
echo "<input type='checkbox' name='sports[]' id ='sport' value='" . $value ."' " . $selected . "/>" . $value . "<br />";
} ?>

像这样创建数组

$arr['F'] = "Football";
$arr['R'] = "Rugby";
$arr['C'] = "Cricket";

$arr[$value] instead of $value

编辑

<?php
$arr['F'] = "Football";
$arr['R'] = "Rugby";
$arr['C'] = "Cricket";
foreach ($values as $value) {
$selected = in_array($value, $db_values) ? ' checked="checked"' : null;
echo "<input type='checkbox' name='sports[]' id ='sport' value=" . $value . $selected . "/>" . $arr[$value] . "<br />";
}
?>

关于php - 填充复选框,然后将选择更新到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34219160/

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