php - 如何保存附带复选框的输入字段?

标签 php mysql phpmyadmin

我有一个复选框列表以及附带的输入文本字段。如果用户选中一个框,随附的文本字段将添加到数组中。

我是 PHP 新手,想知道是否有人可以帮助我朝正确的方向发展。

我应该为每个输入使用 for 循环、foreach、while、唯一的“名称”还是其他内容?

以下是我目前所掌握的内容。

<?php
if(isset($_POST['submit'])){
  $array = array();
  while(isset($_POST['check'])){
    if(!isset($_POST[$some_text]) || empty($_POST[$some_text])){
      echo "Please include your text for each checkbox you selected.";
      exit();
    }
   $array[] = $_POST['some_text];
 }
}
?>

<form>
<input type="checkbox" name="check"><input type="text name="some_text">
<input type="checkbox" name="check"><input type="text name="some_text">
<input type="checkbox" name="check"><input type="text name="some_text">
<!-- I might have around 100 of these -->
<!-- submit button here -->
</form>

最佳答案

您首先需要一种方法将复选框与其相应的文本字段相关联,以及一种区分它们的方法。例如:

<form>
<input type="checkbox" name="check[]" value="1"><input type="text name="text1">
<input type="checkbox" name="check[]" value="2"><input type="text name="text2">
<input type="checkbox" name="check[]" value="3"><input type="text name="text3">
</form>

现在您可以按如下方式循环它:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['check']) && is_array($_POST['check']) && !empty($_POST['check'])) {
        $array = array();
        foreach ($_POST['check'] as $value) {
            $text_field = 'text' . $value;
            if (!isset($_POST[$text_field]) || trim($_POST[$text_field]) == '') {
                echo "Please include your text for each checkbox you selected.";
                exit;
            }
            $array[] = $_POST[$text_field];
        }
    }
}

关于php - 如何保存附带复选框的输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38559427/

相关文章:

php - 如何在不使用引号和其他内容的情况下保护 php 的 $_POST

php - 准备和装订

MySQL 错误 : Specified key was too long; max key length is 1000 bytes

Mysql外部访问不工作

php - 如何停止 xampp 用户所需的身份验证

php - Blade foreach 将输出转换到对象

php - 如何以html形式填充下拉菜单

php - 只需要更新 php 复选框中选中的值

sql - 复杂的查询 - 需要帮助!

java - jdbc 参数太多错误