Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-在表单提交上循环选中复选框的数目_Php_Forms - Fatal编程技术网

PHP-在表单提交上循环选中复选框的数目

PHP-在表单提交上循环选中复选框的数目,php,forms,Php,Forms,我有一个问题,我需要循环表单提交上的复选框数量。Foreach复选框循环后,我需要将数据插入数据库。 如何循环通过表单提交传递的复选框数量 我的代码如下: 表格: <form action="createChallenge.php" method="post" name="chalCreate"> Challenge Name:<input type="text" name="chalName" /> <br /> Challenge

我有一个问题,我需要循环表单提交上的复选框数量。Foreach复选框循环后,我需要将数据插入数据库。 如何循环通过表单提交传递的复选框数量

我的代码如下:

表格:

<form action="createChallenge.php" method="post" name="chalCreate">
    Challenge Name:<input type="text" name="chalName" />
    <br />
    Challenge Target:<input type="text"  name="chalTarget"/>
    <br />
    End Date:<input type="text" name="chalDate">
    <br />
    <!-- Needs a jquery datepicker -->
    Select Friends: <br />
    <?php
       $selFriend = $conn->prepare("SELECT * FROM Friends WHERE UserID = '$userID' AND Friend = 'y' ORDER BY FriendName ASC");
       $selFriend->execute();
       foreach($selFriend as $row){
    ?>
    <input type="checkbox" name="test" value="<?php echo $row['FriendID'] ?>"><?php echo $row['FriendName'] ?><br>
    <?php
    }
    ?>

<br />
<button type="submit">Create Challenge</button>
</form>
<?php
        if(isset($_POST['test']))
        {
            $i = 0;
            foreach($_POST['test'] as $checked)
            {
                echo $friend = $checked;
                $i++;
            }


            echo $name = $_POST['chalName'];
            echo $target = $_POST['chalTarget'];
            echo $date = $_POST['chalDate'];
            echo $friend = $_POST['test'];
            echo $setby = $_COOKIE['userID'];

            $create = $conn->prepare("INSERT INTO Challenge ( chalSetBy, chalName, chalTarget, chalDate ) VALUES ('$setby', '$name', '$target', '$date') ");
            $create->execute();

            if($create)
            {
                echo "Challenge made successfully";
            }
            else
            {
                echo "There was a problem";
            }
        }
      ?>

在HTML页面中创建一个复选框数组,如下所示

<form name="frm" method="post">
<input type="checkbox" value="1" name="test[]">
<input type="checkbox" value="2" name="test[]">
<input type="checkbox" value="3" name="test[]">
<input type="checkbox" value="4" name="test[]">
<input type="checkbox" value="5" name="test[]">
<input type="checkbox" value="6" name="test[]">
<input type="submit">
</form>

<?php 
foreach($_POST['test'] as $key=>$value)
{
echo $value."<br>";

}


旁注:使用
echo$value。“\n”
回显$value。" ";
将在所有条目之间放置一个空格,否则它将结束为,例如:
123456
而不是(可能是有意的)
1 2 3 4 5 6
和换行符
echo$值。“
(只是一个想法)
<form name="frm" method="post">
<input type="checkbox" value="1" name="test[]">
<input type="checkbox" value="2" name="test[]">
<input type="checkbox" value="3" name="test[]">
<input type="checkbox" value="4" name="test[]">
<input type="checkbox" value="5" name="test[]">
<input type="checkbox" value="6" name="test[]">
<input type="submit">
</form>

<?php 
foreach($_POST['test'] as $key=>$value)
{
echo $value."<br>";

}