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? 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. 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. 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
Archived
This topic is now archived and is closed to further replies.