psychowolvesbane Posted January 10, 2008 Share Posted January 10, 2008 I have this validation for 2 groups of check buttons in a big form, the code for the check buttons is here: <fieldset style="padding: 2"> <legend>Available Sizes </legend> <table border="1" id="Sizes"> <tr> <?php $X=0; while($X!=6) { $Size = $CBSizes[$X]; ?> <td><?php echo $Size?>:</td> <td><input type="checkbox" name="Sizes[]" value="<?php echo $Size?>"></td> </tr> <tr> <?php ++$X; } ?> </tr> </table> </fieldset> <br> <br> <fieldset style="padding: 2"> <legend>Available Colours</legend> <table border="1"><tr> <?php //Establish a connection to the Database $conn = mysql_connect($Host,$Username,$Password); $db = mysql_select_db($Dbname, $conn); $sql = "SELECT AvailableColours FROM Colours ORDER BY AvailableColours"; $rs = mysql_query($sql, $conn) or die(mysql_error()); $NumberOfColours = mysql_num_rows($rs); $counter = 0; if ($result || (mysql_num_rows($rs) > 0)) { while ($row = mysql_fetch_assoc($rs)) { if($counter%9==0&&$counter!=0) echo "</tr><tr>"; echo "<td><img src='/images/colours/{$row['AvailableColours']}.gif' /><br />"; echo "<td><input type='checkbox' name='Colours[]' value='{$row['AvailableColours']}'></td>"; echo "</td>"; ++$counter; } } echo "</tr></table>"; mysql_close($conn); ?> </legend> </fieldset> The validation for this code once submitted is here, it is located above the <html> tags: $CBSizes = array("Small", "Medium", "Large", "XL", "XXL", "3XL"); $AColours = $_POST['Colours']; $ASizes = $_POST['Sizes']; //Available Sizes Section if(count($ASizes) > 0) { foreach($ASizes AS $Sizes) { $Valid_ASizes=True; $AvailableSizes .=$Sizes."?"; echo $AvailableSizes; } } else { $Valid_ASizes=False; echo "Please select a size!<br>"; } //Available Colours Section if(count($AColours) > 0) { foreach($AColours AS $Colours) { $Valid_AColours=True; $AvailableColours .=$Colours."?"; echo $AvailableColours; } } else { $Valid_AColours=False; $ValidForm = False; } Now what is is supposed to do is output each value into a string that has been concatenated, and each value is separated with a ?. Now what happens with that code is that it seems to repeat all previous values plus the new one each time instead of just adding the new value on top of the previous ones. An example of the values of each are: (6) selections made for Size: Small?Small?Medium?Small?Medium?Large?Small?Medium?Large?XL?Small?Medium?Large?XL?XXL?Small?Medium?Large?XL?XXL?3XL? (4) Selections made for Colour: Ash?Ash?ForestGreen?Ash?ForestGreen?Natural?Ash?ForestGreen?Natural?SteelBlue? Can you tell me what is going wrong? Quote Link to comment https://forums.phpfreaks.com/topic/85458-solved-problem-with-foreach-loop-in-form/ Share on other sites More sharing options...
Ken2k7 Posted January 11, 2008 Share Posted January 11, 2008 Is this solved or do you still need help? If you do, then for starters, you're echoing $AvailableSizes everytime the for loop runs, so obviously there will be many duplicates like that. Quote Link to comment https://forums.phpfreaks.com/topic/85458-solved-problem-with-foreach-loop-in-form/#findComment-436090 Share on other sites More sharing options...
psychowolvesbane Posted January 11, 2008 Author Share Posted January 11, 2008 Yes it is working, I've had a long day sorry about the useless topic. Quote Link to comment https://forums.phpfreaks.com/topic/85458-solved-problem-with-foreach-loop-in-form/#findComment-436091 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.