0
양식 제출시 확인란의 수를 반복해야하는 문제가 있습니다. 루프 된 Foreach 확인란 데이터베이스에 데이터를 삽입해야합니다. 양식 제출을 통해 전달되는 확인란의 양을 루핑하는 방법은 무엇입니까? 다음과 같이PHP - 양식 제출시 선택한 확인란의 루프 번호
내 코드는 다음과 같습니다
형태 :
PHP<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";
}
}
?>
내가 데이터를 에코 것이다 다음을 수행 생각을, 하지만 그렇지 않은 경우 마지막 체크 박스 만 선택했습니다.
$i = 0;
foreach($_POST['test'] as $checked)
{
echo $friend = $checked;
$i++;
}
사이드 노트, 아래와 같은 HTML 페이지에서 체크 박스의 배열을 확인 :'에코 $ 값을 사용. "\ n";'또는'echo $ value. ";"는 모든 엔트리 사이에 공백을 넣을 것입니다. 그렇지 않으면'123456'과'1 2 3 4 5 6'의 줄 바꿈,'echo $ value '와 같은 줄 바꿈으로 끝납니다. "
"; (그냥 생각) –
훌륭해, 고마워! –