У меня проблема, когда мне нужно зациклировать количество флажков в форме submit. Передний флажок, который зациклирован. Мне нужно затем вставить данные в базу данных. Как я мог бы перебирать количество флажков, которые передаются через форму submit?
Мой код выглядит следующим образом:
Форма:
<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 для обработки формы:
<?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"; } } ?>
Я думал, что делать следующее будет эхо из данных, но это не так, он только выбрал последний флажок:
$i = 0; foreach($_POST['test'] as $checked) { echo $friend = $checked; $i++; }
Создайте массив вашего флажка на странице 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>"; }