Traitement formulaire avec for each et explode

Traitement formulaire avec for each et explode - PHP - Programmation

Marsh Posté le 06-07-2009 à 10:29:45    

Bonjour. J'ai un formulaire avec plusieurs input avec des champs texte et des listes a choix. Mon utilisateur peut remplir jusqu'a huit de ses champs  dans le formualire.  

Code :
  1. <?php
  2. if (isset($_POST['validate'])){
  3. foreach ($_POST as $value) {
  4.  //echo "{$value} </br>";
  5.  $tab_info = explode("<br />", $value);
  6.  $info1 = $tab_info[0];
  7.  echo $info1."<br />";
  8.  //print_r ($pieces)."<br />";
  9. }
  10. ?>  <center><font color="red"><i>Command submitted</i></font></center><br /><br />
  11. <?php
  12. }
  13. ?>
  14. <h1>Thomson <span class="green">Info</span></h1>
  15. <h2>ISAM lines modifications</h2>
  16. Select the lines you want to configure
  17. <form method="post" action="" class="searchform" name="frm_line_ADSL">
  18. <input name="validate" type="hidden" value="yes" />
  19.  <b>Line </b><br>
  20.    <table border="1" align="center">
  21.     <?php
  22.      for ($j= 1; $j <= 8; $j++){
  23.      echo "
  24.      <tr>
  25.       <td>PVC {$j}<input type='text' name='PVC_{$j}' size='3' maxlength='4'>&nbsp;&nbsp;</td>
  26.       <td>Vlan
  27.        <select name='vlan_{$j}' size='1'>
  28.         <option value=''></option>
  29.         <option value='11'>11 - IPoE</option>
  30.         <option value='12'>12 - IPoE</option>
  31.         <option value='13'>14 - IPoE</option>
  32.         <option value='13'>13 - IPoE</option>
  33.         <option value='14'>14 - IPoE</option>
  34.         <option value='1032'>1032 - PPPoE</option>
  35.         <option value='1035'>1035 - PPPoE</option>
  36.         <option value='1036'>1036 - PPPoE</option>
  37.         <option value='1037'>1037 - PPPoE</option>
  38.         <option value='1038'>1038 - PPPoE</option>
  39.        </select>
  40.       </td>
  41.      </tr>";
  42.      }
  43.     ?>
  44.    </table>
  45. <center>
  46. <br /><br />
  47. <input type="submit" value="Send">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  48. <input type="reset" value="Reset">
  49. </form>
  50. <br /><br />
  51. </center>


 
Mon probleme est le suivant. Je souhaiterais que chaque reponse soit stockee dans une case d'un tableau. En gros a chaque tour de la boucle for each, que je recupere les valeurs deux a deux (un PVC couple a un Vlan).  
Merci d'avance.

Reply

Marsh Posté le 06-07-2009 à 10:29:45   

Reply

Marsh Posté le 07-07-2009 à 12:05:09    

Stuntman a écrit :

Bonjour. J'ai un formulaire avec plusieurs input avec des champs texte et des listes a choix. Mon utilisateur peut remplir jusqu'a huit de ses champs  dans le formualire.  
(...)
Mon probleme est le suivant. Je souhaiterais que chaque reponse soit stockee dans une case d'un tableau. En gros a chaque tour de la boucle for each, que je recupere les valeurs deux a deux (un PVC couple a un Vlan).  
Merci d'avance.


Salut,
 
En lisant ton code j'ai l'impression que tu connais à l'avance le nombre de champs, à savoir 8
Donc moi je referais la même boucle que pour construire les champs

Code :
  1. $resultat = array();
  2. for ($i = 1 ; $i <= 8 ; $i++)
  3. {
  4.    if (!empty($_POST['vlan_' . $i]) && !empty($_POST['PVC_' . $i]))
  5.    {
  6.        $resultat[] = array(
  7.            'num' => $i,
  8.            'vlan' => $_POST['vlan_' . $i],
  9.            'PVC' => $_POST['PVC_' . $i]
  10.        );
  11.    }
  12. }
  13. echo '<pre>';
  14. var_dump($resultat);


Ca te donnera un tableau de tableaux associatifs avec toutes tes valeurs.
J'espère que ça peut t'aider..
 
A+

Reply

Marsh Posté le 07-07-2009 à 16:32:19    

Ok parfait, vraiment un grand merci. Je posterais mon code final. Ca peut toujours aider :)


Message édité par Stuntman le 07-07-2009 à 16:42:33
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed