我应该如何通过复选框创建数组?

时间:2019-01-21 16:56:03

标签: php html

因此,我想从我所有的复选框中创建一个数组,然后再检查是否选中了它们。 目前,我正在尝试以下方式,但这种方式不起作用:

<?php
  $napok[] = $_POST['napok[]'];

  isset($_POST['napok[0]'])
?>



<form class="asd" id="checkbox" action="index.php"  method="post">
    <table>
      <thead>
          <tr>
            <th></th>
              <th>1.</th>
              <th>2.</th>
              <th>3.</th>
              <th>4.</th>
              <th>5.</th>
              <th>6.</th>
          </tr>
        </thead>

        <tbody>
            <tr>
              <th>Hétfő</th>
                <td><input type="checkbox" id="he1" onclick="checkingFunction(this)" name="napok[]"><label id="he1" for="he1">40</label></td>
                <td><input type="checkbox" id="he2" onclick="checkingFunction(this)" name="napok[]"><label id="he2" for="he2">40</label></td>
                <td><input type="checkbox" id="he3" onclick="checkingFunction(this)" name="napok[]"><label id="he3" for="he3">40</label></td>
                <td><input type="checkbox" id="he4" onclick="checkingFunction(this)" name="napok[]"><label id="he4" for="he4">40</label></td>
                <td><input type="checkbox" id="he5" onclick="checkingFunction(this)" name="napok[]"><label id="he5" for="he5">40</label></td>
                <td><input type="checkbox" id="he6" onclick="checkingFunction(this)" name="napok[]"><label id="he6" for="he6">40</label></td>
            </tr>
            <tr>
              <th>Kedd</th>
              <td><input type="checkbox" id="ke1" onclick="checkingFunction(this)" name="napok[]"><label id="ke1" for="ke1">40</label></td>
              <td><input type="checkbox" id="ke2" onclick="checkingFunction(this)" name="napok[]"><label id="ke2" for="ke2">40</label></td>
              <td><input type="checkbox" id="ke3" onclick="checkingFunction(this)" name="napok[]"><label id="ke3" for="ke3">40</label></td>
              <td><input type="checkbox" id="ke4" onclick="checkingFunction(this)" name="napok[]"><label id="ke4" for="ke4">40</label></td>
              <td><input type="checkbox" id="ke5" onclick="checkingFunction(this)" name="napok[]"><label id="ke5" for="ke5">40</label></td>
              <td><input type="checkbox" id="ke6" onclick="checkingFunction(this)" name="napok[]"><label id="ke6" for="ke6">40</label></td>
            </tr>
            <tr>
              <th>Szerda</th>
              <td><input type="checkbox" id="sze1" onclick="checkingFunction(this)" name="napok[]"><label id="sze1" for="sze1">40</label></td>
              <td><input type="checkbox" id="sze2" onclick="checkingFunction(this)" name="napok[]"><label id="sze2" for="sze2">40</label></td>
              <td><input type="checkbox" id="sze3" onclick="checkingFunction(this)" name="napok[]"><label id="sze3" for="sze3">40</label></td>
              <td><input type="checkbox" id="sze4" onclick="checkingFunction(this)" name="napok[]"><label id="sze4" for="sze4">40</label></td>
              <td><input type="checkbox" id="sze5" onclick="checkingFunction(this)" name="napok[]"><label id="sze5" for="sze5">40</label></td>
              <td><input type="checkbox" id="sze6" onclick="checkingFunction(this)" name="napok[]"><label id="sze6" for="sze6">40</label></td>
            <tr>
              <hr>
              <th>Csütörtök</th>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu1" for="csu1">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu2" for="csu2">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu3" for="csu3">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu4" for="csu4">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu5" for="csu5">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[]"><label id="csu6" for="csu6">40</label></td>
            </tr>
        </tbody>
    </table>
    <input type="submit" class="button" value="Jelentkezés elküldése">
</form>

正如我所说,我想要一个数组。它的大小应为24个元素左右(24个复选框)。后来我想检查每个是否被检查,但是我怎么做所有这些事情?

2 个答案:

答案 0 :(得分:1)

解决该问题的两种主要方法。一种方法是定义密钥:

name="napok[he1]"
name="napok[he2]"

然后检查它们:

if(isset($_POST['napok']['he1'])) { }

或设置一个值:

name="napok[]" value="he1"
name="napok[]" value="he2"

然后检查:

if(in_array('he1', $_POST['napok'])) { }

此外,这是不正确的(请参见上文):

$napok[] = $_POST['napok[]'];

isset($_POST['napok[0]'])

答案 1 :(得分:0)

删除多余的$_POST['napok[]'];括号,并尝试使用array将所有复选框捕获为$_POST['napok']。另外,您可以传递napok数组的索引,例如napok[he1]napok[he2]等,以便在检查是否选中了 element 时更容易?

完整代码:

<form class="asd" id="checkbox" action="?"  method="post">
    <table>
      <thead>
          <tr>
            <th></th>
              <th>1.</th>
              <th>2.</th>
              <th>3.</th>
              <th>4.</th>
              <th>5.</th>
              <th>6.</th>
          </tr>
        </thead>

        <tbody>
            <tr>
              <th>Hétfő</th>
                <td><input type="checkbox" id="he1" onclick="checkingFunction(this)" name="napok[he1]"><label id="he1" for="he1">40</label></td>
                <td><input type="checkbox" id="he2" onclick="checkingFunction(this)" name="napok[he2]"><label id="he2" for="he2">40</label></td>
                <td><input type="checkbox" id="he3" onclick="checkingFunction(this)" name="napok[he3]"><label id="he3" for="he3">40</label></td>
                <td><input type="checkbox" id="he4" onclick="checkingFunction(this)" name="napok[he4]"><label id="he4" for="he4">40</label></td>
                <td><input type="checkbox" id="he5" onclick="checkingFunction(this)" name="napok[he5]"><label id="he5" for="he5">40</label></td>
                <td><input type="checkbox" id="he6" onclick="checkingFunction(this)" name="napok[he6]"><label id="he6" for="he6">40</label></td>
            </tr>
            <tr>
              <th>Kedd</th>
              <td><input type="checkbox" id="ke1" onclick="checkingFunction(this)" name="napok[ke1]"><label id="ke1" for="ke1">40</label></td>
              <td><input type="checkbox" id="ke2" onclick="checkingFunction(this)" name="napok[ke2]"><label id="ke2" for="ke2">40</label></td>
              <td><input type="checkbox" id="ke3" onclick="checkingFunction(this)" name="napok[ke3]"><label id="ke3" for="ke3">40</label></td>
              <td><input type="checkbox" id="ke4" onclick="checkingFunction(this)" name="napok[ke4]"><label id="ke4" for="ke4">40</label></td>
              <td><input type="checkbox" id="ke5" onclick="checkingFunction(this)" name="napok[ke5]"><label id="ke5" for="ke5">40</label></td>
              <td><input type="checkbox" id="ke6" onclick="checkingFunction(this)" name="napok[ke6]"><label id="ke6" for="ke6">40</label></td>
            </tr>
            <tr>
              <th>Szerda</th>
              <td><input type="checkbox" id="sze1" onclick="checkingFunction(this)" name="napok[sze1]"><label id="sze1" for="sze1">40</label></td>
              <td><input type="checkbox" id="sze2" onclick="checkingFunction(this)" name="napok[sze2]"><label id="sze2" for="sze2">40</label></td>
              <td><input type="checkbox" id="sze3" onclick="checkingFunction(this)" name="napok[sze3]"><label id="sze3" for="sze3">40</label></td>
              <td><input type="checkbox" id="sze4" onclick="checkingFunction(this)" name="napok[sze4]"><label id="sze4" for="sze4">40</label></td>
              <td><input type="checkbox" id="sze5" onclick="checkingFunction(this)" name="napok[sze5]"><label id="sze5" for="sze5">40</label></td>
              <td><input type="checkbox" id="sze6" onclick="checkingFunction(this)" name="napok[sze6]"><label id="sze6" for="sze6">40</label></td>
            <tr>
              <hr>
              <th>Csütörtök</th>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu1]"><label id="csu1" for="csu1">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu2]"><label id="csu2" for="csu2">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu3]"><label id="csu3" for="csu3">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu4]"><label id="csu4" for="csu4">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu5]"><label id="csu5" for="csu5">40</label></td>
              <td><input type="checkbox" id="csu1" onclick="checkingFunction(this)" name="napok[csu6]"><label id="csu6" for="csu6">40</label></td>
            </tr>
        </tbody>
    </table>
    <input type="submit" class="button" value="Jelentkezés elküldése">
</form>

<?php 
if (isset($_POST['napok'])) 
{
    print '<pre>';
    print_r($_POST['napok']); 
    print '</pre>';
}
?>

提交后:

Array
(
    [he4] => on
    [he6] => on
    [ke2] => on
    [ke5] => on
    [sze5] => on
    [csu3] => on
    [csu4] => on
)