Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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 如何将清单值保存到MySQL&;是否能够重新填充复选框?_Php_Mysql_Sql - Fatal编程技术网

Php 如何将清单值保存到MySQL&;是否能够重新填充复选框?

Php 如何将清单值保存到MySQL&;是否能够重新填充复选框?,php,mysql,sql,Php,Mysql,Sql,我不知道如何将复选框表单输入保存到MySQL中,并能够检索它们并重新填充输入 我甚至还没有创建一个表,因为我无法意识到如何去做 我有一个包含多行(tr)的html表,其中所有的表都有这些复选框,我想将每个选中的框保存到MySQL和 能够检索所选的并重新填充它,但正如我所说的,我不知道如何做 我能想到的唯一方法是,用foreach提交所选的表,并在每一行中用它们的特定表行iD保存所有所选的表,但我不知道如果它们被选中,我将如何检索它们 我有以下内容,但不知道如何检索。此外,复选框可以随时增加(选项

我不知道如何将复选框表单输入保存到MySQL中,并能够检索它们并重新填充输入

我甚至还没有创建一个表,因为我无法意识到如何去做

我有一个包含多行(tr)的html表,其中所有的表都有这些复选框,我想将每个选中的框保存到MySQL和 能够检索所选的并重新填充它,但正如我所说的,我不知道如何做

我能想到的唯一方法是,用foreach提交所选的表,并在每一行中用它们的特定表行iD保存所有所选的表,但我不知道如果它们被选中,我将如何检索它们

我有以下内容,但不知道如何检索。此外,复选框可以随时增加(选项),因此我无法为它们创建特定的表,因为当前有4个复选框,但明天可能有20个复选框可供选择

$checkboxData = $_POST['cbO'];
$tableiD      = '1';

if(isset($_POST['submit']))
{
    for( $i=0; $i < sizeof($checkboxData); $i++ )
    {
        $sth = $this->db->prepare("INSERT INTO table(rows) VALUES (:checkboxInfo) WHERE table_id = :tableiD");
        $sth->execute(array(
               ':checkboxInfo' => $checkboxData[$i],
               ':tableiD' => $tableiD)
        );
    }
}

<form method="post" action="">
    <li><input type="checkbox" name="cbO[]" value="349169846048613138">CheckBox1</li>
    <li><input type="checkbox" name="cbO[]" value="349169846048613136">CheckBox2</li>
    <li><input type="checkbox" name="cbO[]" value="349169846048613140">CheckBox3</li>
    <li><input type="checkbox" name="cbO[]" value="349169846048613141">CheckBox4</li>

    <input type="submit" name"submit" value"Submit"/>
</form>
$checkboxData=$\u POST['cbO'];
$tableiD='1';
如果(isset($_POST['submit']))
{
对于($i=0;$idb->prepare(“插入表(行)值(:checkboxInfo),其中表_id=:tableiD”);
$sth->execute(数组)(
“:checkboxInfo”=>$checkboxData[$i],
':tableiD'=>$tableiD)
);
}
}
  • 复选框1
  • 复选框2
  • 复选框3
  • 复选框4

  • 关于项目的可变数量,从数据库中获取项目,并与它们进行循环:

    <form method="post" action="">
    <ul>
    <?php if (!empty($items)) foreach ($itens as $i => $value) { ?>
        <li>
            <input type="checkbox" name="cbO[<?= $i ?>]" value="<?= $value ?>"> 
            CheckBox<?= ($i + 1) ?>
        </li>
    <?php } ?>
    </ul>
    </form>
    
    
    

    • 在希望接收的值类上运行一个
      print\r($\u POST)
      ,那么该值将始终是您期望的值。

      而不是
      $1
      将其更改为
      $i
      ,因为循环
      $checkboxData
      的值会自然地将第一个值设置为
      [0]
      ,因此插入语法错误(
      其中
      INSERT
      中无效,请尝试类似->
      插入表(行,表id)值(:checkboxInfo,:tableiD)
      的操作,若要添加到@Sean的点,只需使表的
      id
      自动递增
      设置值,请使用/->
      if(isset($\u POST['cbO'))&&in数组(349169846048613138,$_POST['cbO'])回显“checked='checked'”