Question

Je vais avoir des problèmes de décapage les étiquettes des entrées textuelles extraites de ma forme afin de faire quelque chose avec eux dans checkout.php. L'entrée est stocké dans un multi-dimensional array.

Voici ma forme:

  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>';

voici 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;
}
Était-ce utile?

La solution

Vous avez besoin d'un & pour permettre l'édition de l'objet.

foreach ($_POST['guest'] as &$guest)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top