2010-03-19 8 views
0

Je rencontre des problèmes pour supprimer les balises des entrées textuelles récupérées dans mon formulaire afin de faire quelque chose avec elles dans checkout.php. L'entrée est stockée dans un multi-dimensional array.PROBLÈME: PHP strip_tags & multi-dimensional array form parameter

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

est ici 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; 
} 

Répondre

2

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

foreach ($_POST['guest'] as &$guest) 
+0

Merci pour la réponse rapide. Tellement évident! – Fortisimo