Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从my db中的复选框保存值_Php_Database_Checkbox - Fatal编程技术网

Php 从my db中的复选框保存值

Php 从my db中的复选框保存值,php,database,checkbox,Php,Database,Checkbox,我正在尝试将复选框中的值存储到数据库中。到目前为止,我只能存储最后一个复选框选项。后来,我试着以某人为榜样,但我很困惑。如何确保所有数据都存储在数据库中 在我的表中,我希望包含信息的列被命名为“categories”。其余部分如下(仅2个) 所以我就这样结束了: $cats = $_POST['cats']; $categories=$_POST['categories']; $str = $categories . ": " . implode(", ", $cats); 输入的名称应该是

我正在尝试将复选框中的值存储到数据库中。到目前为止,我只能存储最后一个复选框选项。后来,我试着以某人为榜样,但我很困惑。如何确保所有数据都存储在数据库中

在我的表中,我希望包含信息的列被命名为“categories”。其余部分如下(仅2个)

所以我就这样结束了:

$cats = $_POST['cats'];
$categories=$_POST['categories'];

$str = $categories . ": " . implode(", ", $cats);

输入的名称应该是
name=“cats[]”
。在这些表单中,您将得到您所检查的值数组。

我没有足够的权限在之前的回答尝试中添加注释,但@Erman Belegu所说的是正确的,
cats[]
应该可以做到这一点。这是代码

HTML文件

<tr>
    <td><input type="hidden" name="categories" value="categories">Categories</td>       

        <td>
            <div class="checkbox";>
                <label class="checkbox_label">
                    <input name="cats[]" value="Accessoires" type="checkbox" 
                      class="checkbox1"/>
                    Accessoires
                </label>
            </div>

            <div class="checkbox";>
                <label class="checkbox_label">
                    <input name="cats[]" value="Mobilier de bureau " 
                        type="checkbox" class="checkbox1"/>
                    Mobilier de bureau 
                </label>
            </div>
    </td>
</tr>

<input type="submit" name="submit" value="submit"/>

类别
附属品
移动电话局
我唯一添加的是submit按钮,因此当单击submit时,我只能在php中执行一些操作,下面是相同的php代码

<?php

$cats = array();

    if(isset($_POST['submit']))
    {
        if(isset($_POST['cats']))
        {
            $cats = $_POST['cats'];
        }
        $categories= $_POST['categories'];

        $str = $categories . ": " . implode(", ", $cats);
        echo $str;
    }

?>

如果您选择某个内容并单击“回声”,您将看到类别:以及您选择的任何内容

希望这对我有所帮助,或者我没有完全了解你的问题


谢谢。

您还没有真正说明您的问题所在。我的值没有正确地保存在我的数据库中。起初,我只保存一个值。现在,它只保存单词“categories”。现在,单词“categories”出现在我的数据库中。我在第38行收到错误消息:Warning:improde()[function.improde]:在/***/******/******/formulaires/processForm-test.php中传递的参数无效。为什么要执行名为“categories”的隐藏输入?你为什么需要它?关于你的问题,只是作为一种视觉。另外,我在上面还发布了一些关于你们和肖恩谈论的内容。谢谢你们在示例中对其进行扩展。我只是在他需要改变的时候写下地址。为你投票!嗯,实际上没有任何回音:/我知道$str与字符串有关(或者说,这是谷歌告诉我的)。每当我查看我的数据库时,我只看到“类别”一词。如果没有选中复选框,它只回显类别;如果选中一个复选框,它回显类别:选中复选框的值;如果同时选中这两个复选框,它回显类别:两个复选框的值。在我的测试服务器上尝试所有3种情况,选中一个复选框,不选中任何复选框,同时选中两个复选框,您必须点击submit以查看不同的回显结果。如果您的数据库仅显示类别,这意味着您创建的字符串仅为类别:因此,这是数据库中显示的内容。你能给我看一下你的代码吗?这样我就可以看一遍,然后我们一起试着找出答案。
<tr>
    <td><input type="hidden" name="categories" value="categories">Categories</td>       

        <td>
            <div class="checkbox";>
                <label class="checkbox_label">
                    <input name="cats[]" value="Accessoires" type="checkbox" 
                      class="checkbox1"/>
                    Accessoires
                </label>
            </div>

            <div class="checkbox";>
                <label class="checkbox_label">
                    <input name="cats[]" value="Mobilier de bureau " 
                        type="checkbox" class="checkbox1"/>
                    Mobilier de bureau 
                </label>
            </div>
    </td>
</tr>

<input type="submit" name="submit" value="submit"/>
<?php

$cats = array();

    if(isset($_POST['submit']))
    {
        if(isset($_POST['cats']))
        {
            $cats = $_POST['cats'];
        }
        $categories= $_POST['categories'];

        $str = $categories . ": " . implode(", ", $cats);
        echo $str;
    }

?>