2013-12-19 63 views
0

我有一個問題,我需要循環表單提交中複選框的數量。 Foreach複選框是循環的,我需要將數據插入到數據庫中。 我該如何去循環遍歷通過表單提交傳遞的複選框的數量?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處理表單:

<?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++; 
} 

回答

1

讓您的複選框的數組中的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>"; 

} 
+1

邊注:使用'回聲$值。 「\ n」;'或'echo $ value。 「」;'將在所有條目之間放置一個空格,否則它將最終成爲,例如:'123456'而不是(可能打算)'1 2 3 4 5 6',換行符是'echo $ value'。 「
」;'(只是一個想法) –

+0

輝煌,謝謝! –