To get famous sports from counties, I created this form.
$sports = array (
'Australia' => array (
1 => 'Cricket',
2 => 'Foot Ball',
3 => 'Net Ball',
4 => 'Kabadi',
5 => 'Ragby',
6 => 'Basket Ball',
7 => 'Volley Ball',
),
'New Zealand' => array (
1 => 'Cricket',
2 => 'Foot Ball',
3 => 'Net Ball',
4 => 'Ragby',
5 => 'Basket Ball',
),
'England' => array (
1 => 'Cricket',
2 => 'Foot Ball',
3 => 'Net Ball',
4 => 'Ragby',
5 => 'Karom',
6 => 'Basket Ball',
7 => 'Table Tennis',
8 => 'Tennis',
),
);
echo '<br><form action="" method="post">';
foreach ( $sports AS $country => $sport ) {
echo "<h3>{$country}</h3
";
foreach ($sport AS $k => $v) {
echo "<br /><input type='checkbox' name='country-sport[{$country}][]' value='{$k}' />{$v}
";
}
}
echo "
<br><input type='submit' value='go' />
</form>";
My problem is When I am going to validate this. Here I need to check some conditions with this form validation.
- country-subject array is completely empty or not
- at least 1 or upto 3 sports for each countries have selected or not
these conditions not met need to display error message.
I tried something like this.. with this code I can get 1st error message which is if whole array is empty..
UPDATE : this is my validation code so far..
if ( isset($_POST['country-sport']) && is_array( $_POST['country-sport'])) {
foreach ( $_POST['country-sport'] AS $country => $sport) {
if ( count($sport) >= 1 && count($sport) <= 3) { //checking that it has 3 or more values.
//process
} else {
echo "select at leat 1 or upto 3 sports for {$country} ";
}
}
} else {
echo 'You have not selected sports for any country!';
}
UPDATE : with var_dump($_POST['country-sport']);
array(3) {
["Australia"]=>
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
["New Zealand"]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "3"
[2]=>
string(1) "4"
}
["England"]=>
array(3) {
[0]=>
string(1) "6"
[1]=>
string(1) "7"
[2]=>
string(1) "8"
}
}