PHP - 使用复选框获取密钥和值

时间:2017-06-10 17:43:25

标签: php html checkbox

    Documents     Original            Xerox
-------------------------------------------------
    ABC          <checkbox>          <checkbox>
    DEF          <checkbox>          <checkbox>
    XYZ          <checkbox>          <checkbox>

我有一个复选框结构,如上所示。 但我不确定,我怎么想实施它。 我知道正常复选框的工作,因为它只有一个复选框。 但在这种情况下,对于每个文档,都有2个复选框(原始副本和 xerox 副本)

我想到的是,在点击提交后,我需要以某种方式获得如下表单中的数组

ABC -> [1][1]
DEF -> [0][1]
XYZ -> [1][0]

第一个[]原始,第二个[] xerox 。 其中1表示已选中,0表示未选中。

我不知道应该如何实现它。 这是我的代码......(这可能是非常错误的,我同意..但我仍然尝试过......但是无法弄明白。)

<table>
  <tr>
  <td>Aadhar</td>
  <td><input type="checkbox" name="document[]" value="1"/></td>
  </tr>
  <tr>
  <td>Pan Card</td>
  <td><input type="checkbox" name="document[]" value="1"/></td>
  </tr>
  <tr>
  <td>Address</td>
  <td><input type="checkbox" name="document[]" value="1"/></td>
  </tr>
  <tr>
  <td>Light Bill</td>
  <td><input type="checkbox" name="document[]" value="1"/></td>
  </tr>
  <tr>
  <td><input type="submit" value="Submit" /></td>
  </tr>
</table>

PHP

$documents = $_POST['document'];
$a = implode($documents);
echo $a;

到目前为止,我正确地获得了1(值)..但我还需要document(键){&#39; 1&#39;(价值)属于。 任何人都可以帮帮我。

1 个答案:

答案 0 :(得分:0)

Checkboxes only submit WHEN CHECKED,所以你永远不会得到一个提交“0”值的复选框。

也就是说,您可以通过简单地询问PHP是否已设置来检查它,如下所示:isset($_POST['document']['aadhar'][1]) - 如果返回true,则检查它,如果没有,则不检查。

有一点需要注意:您将要为数组的第二维指定索引,所以:

<td><input type="checkbox" name="document[aadhar][]" value="1"/></td>

成为这个:

<td><input type="checkbox" name="document[aadhar][original]" value="1"/></td>

通过询问isset(),您可以跟踪选中了哪个复选框的“列”。

以下是一个工作示例:http://myingling.com/random/random/44476276/

以下是该示例中的HTML:

<form action='post.php' method='post'>
   <table>
     <tr>
      <td>Aadhar</td>
      <td><input type="checkbox" name="document[aadhar][col1]" value="1"/></td>
      <td><input type="checkbox" name="document[aadhar][col2]" value="1"/></td>
    </tr>
    <tr>
      <td>Address</td>
      <td><input type="checkbox" name="document[light][col1]" value="1"/></td>
      <td><input type="checkbox" name="document[light][col2]" value="1"/></td>
    </tr>
    <tr>
      <td><input type="submit" value="Submit" /></td>
    </tr>
  </table>
</form>

以下是post.php

中的PHP
<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";