【问题标题】:How to retrieve the checked state of a checkbox from a Html form and store it in a database?如何从 Html 表单中检索复选框的选中状态并将其存储在数据库中?
【发布时间】:2014-07-11 17:31:16
【问题描述】:

我有一个表单域

<input type="checkbox" name="page" value=""/>

mysql db 中的对应字段是真假,如果有人点击复选框我想通过 POST 将 TRUE 值发送到 db,我该如何实现?

【问题讨论】:

  • 您不会使用 POST 向数据库发送任何内容。
  • 实际上,使用 POST 您可以将表单发送到处理脚本,从而允许将数据发送到数据库。所以有可能,是的。

标签: php


【解决方案1】:

你给输入任何你喜欢的值:

<input type="checkbox" name="page" value="true"/>

那么,如果复选框被选中,则为一个成功的控件并提交。

<?php
if (isset($_POST['page']) && $_POST['page'] == 'true') {
    // Then insert something into the database as normal
}
?>

如果您想在未选中复选框时设置它,那么您将需要一个elseif 一起使用。

【讨论】:

  • 在执行 print_r 时,我可以看到 $_POST['page'] 的值,并且 db 中的 page 字段是 enum('false','true'),我总是在无论我是否检查,新数据输入,请帮助
  • 那么问题就在于你如何尝试让数据库查询来设置值而不是读取表单数据。
  • 我的代码是
  • 您可能想要更新而不是插入,您需要插入 something(您没有字段名称或值)并且您需要阅读有关 little bobby tables 的信息。
【解决方案2】:

对于复选框,value 属性决定了选中该项时的值。如果未选中,则根本不会提交任何值。因此,您应该始终在复选框上指定 value 属性。

如果您希望复选框默认选中,那么您还需要指定checked 属性。

<input type="checkbox" name="page" value="1" checked='checked' />

【讨论】:

    【解决方案3】:

    形式:

    <form action="/path/to/processing_script.php" method="POST">
    <!--... Other Form Elements go here -->
    <input type="text" name="color" />
    <input type="checkbox" name="page" value="True"/>
    <input type="submit" value="Send to Database" />
    </form>
    

    处理脚本: (processing_script.php)

    <?php
    
    // Check is 'True'?
    if ($_POST['page'] != 'True')
    {
        $_POST['page'] = 'False';
    }
    
    $con=mysqli_connect("your-db-loc","your-db-username","your-db-pass","db-name");
    
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL Database: " . mysqli_connect_error();
    }
    
    mysqli_query($con,"INSERT INTO TableNameHere (True-false, Favorite Color)
    VALUES ($_POST['page'], $_POST['color'])");
    
    mysqli_close($con);
    ?>
    

    这个示例我创建了将 2 种数据类型添加到数据库的新行。

    将文本“TableNameHere”替换为您的数据库表名,格式应类似于:“prefix_colors_tble”

    将文本“your-db-loc”替换为您的数据库位置,通常是内部服务器的“localhost”,或者可以是实时服务器的 URL。

    将文本“your-db-username”替换为登录mysql的用户名,必须有足够的权限。

    将文本“your-db-pass”替换为用户密码

    替换文本“db-name”数据库名称(不被视为重要,除非包含多个数据库)

    将文本“True-false”和“Favourite Color”替换为您的 db 表列标题。

    祝你好运! -附言我知道这个答案晚了几年,但我希望它可以帮助其他人。将您的感谢发送至http://amazewebs.com/testimonial 谢谢。

    【讨论】:

      【解决方案4】:

      表单提交后通过读取$_POST收集以下内容,然后使用mysql_query将其写入数据库

      【讨论】:

        【解决方案5】:

        您要做的第一件事是修改复选框的当前 html 代码并在值字段中添加一些内容。

        假设您将值设置为 1。

        第二件事是,如果您要发布表单,那么您必须使用 PHP、Perl、Java 等服务器端语言来处理表单。

        例如在 PHP 中,您可以使用 $_POST['page'] 获取页面字段发送的内容。

        现在你必须做一些服务器端处理来查看 $_POST['page'] == '1' ,然后设置 $page = 'true';else set$page = 'false';

        您可以使用您正在使用的语言的库函数将 $page 插入数据库。

        【讨论】:

          猜你喜欢
          • 2014-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-02
          • 2014-09-02
          相关资源
          最近更新 更多