views:

313

answers:

1

I'm having problems stripping the tags from the textual inputs retrieved from my form so as to do something with them in checkout.php. The input is stored in a multi-dimensional array.

Here's my form:

  echo '<form name="choose" action="checkout.php" method="post" onsubmit="return  validate_second_form(this);">';

        echo '<input type="hidden" name="hidden_value" value="'.$no_guests.'" />';

        if($no_guests >= 1){

            echo '<div class="volunteer">';
                echo '<fieldset>';
                    echo '<legend>Volunteer:</legend>';
                        echo '<label>Table:</label>';
                        echo '<select name="volunteer_table">';
                            foreach($tables as $t){
                                    echo '<option>'.$t.'</option>';
                                }
                        echo '</select><br><br>';
                        echo '<label>Seat number:</label>';
                        echo '<select name="volunteer_seat">';
                            foreach($seats as $seat){
                                    echo '<option>'.$seat.'</option>';
                                }
                        echo '</select><br><br>';
                        //echo '<br>';
                echo '</fieldset>';
            echo '</div>';

            for($i=0;$i<$no_guests;$i++){
                $guest = "guest_".$i;
                echo '<div class="'.$guest.'">';
                    echo '<fieldset>';
                        echo '<legend>Guest '.$i.':</legend>';
                            echo '<label>First Name:</label>';
                            echo '<input type="text" name="guest['.$i.']['.$first_name.']" id="fn'.$i.'">';
                            echo '<label>Surname:</label>';
                            echo '<input type="text" name="guest['.$i.']['.$surname.']" id="surname'.$i.'"><br><br>';

                            echo '<label>Date of Birth:</label> <br>';
                            echo '<label>Day:</label>';
                            echo '<select name="guest['.$i.'][dob_day]">';
                                for($j=1;$j<32;$j++){
                                    echo"<option value='$j'>$j</option>";
                                }
                            echo '</select>';

                            echo '<label>Month:</label>';
                            echo '<select name="guest['.$i.'][dob_month]">';
                                for($j=0;$j<sizeof($month);$j++){
                                    $value = ($j + 1);
                                    echo"<option value='$value'>$month[$j]</option>";
                                }
                            echo '</select>';

                            echo '<label>Year:</label>';
                            echo '<select name="guest['.$i.'][dob_year]">';
                                for($j=1900;$j<$year_limit;$j++){
                                    echo"<option value='$j'>$j</option>";
                                }
                            echo '</select> <br><br>';

                            echo '<label>Sex:</label>';
                            echo '<select name="guest['.$i.']['.$sex.']">';
                                echo '<option>Female</option>';
                                echo '<option>Male</option>';
                            echo '</select><br><br>';

                            echo '<label>Table:</label>';
                            echo '<select name="guest['.$i.']['.$table.']">';
                                foreach($tables as $t){
                                    echo '<option>'.$t.'</option>';
                                }

                            echo '</select><br><br>';
                            echo '<label>Seat number:</label>';
                            echo '<select name="guest['.$i.']['.$seat_no.']">';
                                foreach($seats as $seat){
                                    echo '<option>'.$seat.'</option>';
                                }
                            echo '</select><br><br>';
                            //echo '<br>';
                    echo '</fieldset>';
                echo '</div>';
            }
        }
        else{
            echo '<div id="volunteer">';
                echo '<fieldset>';
                    echo '<legend>Volunteer:</legend>';
                        echo '<label>Table:</label>';
                        echo '<select name="volunteer['.$table.']">';
                            foreach($tables as $t){
                                    echo '<option>'.$t.'</option>';
                                }
                        echo '</select><br><br>';
                        echo '<label>Seat number:</label>';
                        echo '<select name="volunteer['.$seat_no.']">';
                            foreach($seats as $seat){
                                    echo '<option>'.$seat.'</option>';
                                }
                        echo '</select><br><br>';
                        //echo '<br>';
                echo '</fieldset>';
            echo '</div>';
        }
        echo '<input type="submit" value="Submit form">';
    echo '</form>';

here's checkout.php:

if(isset($_POST['guest'])){
foreach($_POST['guest'] as $guest){
    $guest['first_name'] = strip_tags($guest['first_name']);
    $guest['surname'] = strip_tags($guest['surname']);
}
//$_SESSION['guest'] = $guests;
}
+2  A: 

You need an & to allow editing of the object.

foreach ($_POST['guest'] as &$guest)
St. John Johnson
Thanks for the quick reply. So obvious!
Tunji Gbadamosi