HTML.如何将复选框值传递给php?

Sta*_*vas 0 html php checkbox post get

我有表单,这里是复选框,如何将值从复选框传递给PHP?例如:如果选中复选框则传递1,如果未选中0.

我正在使用以下内容:

<input type="checkbox" name="letter" value="letter" id="letter" checked="checked">
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

  <form class="form"  method="post" action="GetFbId.php">
    <h2>Registration</h2><hr/>
    <label>First Name: </label>
    <input type="text" name="first_name" id="first_name" required>

    <label>Last Name: </label>
    <input type="text" name="last_name" id="last_name" required>

    <label>City: </label>
    <input type="text" name="city" id="city" required>

    <label>Email: </label>
    <input type="text" name="email" id="email" required><br>

    Accept to get letters 
    <input type="checkbox" name="letter" value="letter" id="letter" checked="checked">

    <input type="submit" name="register" id="register" value="Register">
  </form>
Run Code Online (Sandbox Code Playgroud)

D4V*_*V1D 7

$_POST['letter'] 将在且仅当在表单提交期间选中复选框时才会设置.

就像这样测试:

<?php
if(isset($_POST['letter']))
{
    // $_POST['letter'] is set, checkbox has been checked.
}
Run Code Online (Sandbox Code Playgroud)


小智 5

在 PHP 中,复选框输入要么在$_POST数组中设置,要么不设置。选中的复选框将被设置,未选中的复选框则不会。

如果您将复选框的值更改为 1,那么这$_POST['letter']将是1

<input type="checkbox" name="letter" value="1" id="letter">
Run Code Online (Sandbox Code Playgroud)

然后,如果您需要将 0 保存到$letter变量中(如果未检查),

$letter = isset($_POST['letter']) ? $_POST['letter'] : 0;
Run Code Online (Sandbox Code Playgroud)

另一种选择是在前端执行此操作,将 0 或 1 的值保存到隐藏输入中,并$_POST['letter']在 PHP 端检查 的值,因为它始终有一个值

<input type="hidden" value="0" name="letter" id="letter">
<input type="checkbox" name="select_letter" value="1" id="select_letter"
     onchange="document.getElementById('letter').value = this.checked ? 1 : 0">
Run Code Online (Sandbox Code Playgroud)