IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Transmettre un tableau via un formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Transmettre un tableau via un formulaire
    Bonjour à tous,

    voici mon problème,
    je souhaite créer une zone de recherche par période sur une page

    Je l'ai donc fait sous forme de formulaire comme vous pouvez le voir ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <div id="formulaire">
    <div class="blocForm">
     
         <h2>Effectuer une Recherche</h2>
         <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
         <fieldset title="Effectuer une recherche">
              <p>
              <label for="annee">Année :</label>
              <select name="annee" size="1">
              <option value="<?php echo $aujourdhui[0]; ?>"><?php echo $aujourdhui[0]; ?> </option>
              <?php $anneesPossibles = mysql_query("SELECT DISTINCT EXTRACT(YEAR FROM date_debut) date_debut FROM `qpr` WHERE `date_debut` NOT LIKE '".$aujourdhui[0]."%' ORDER BY `date_debut` ASC");
              while($all_annee = mysql_fetch_object($anneesPossibles))
              {
                   ?>
                   <option value='<?php echo $all_annee->date_debut; ?>'>
                   <?php echo $all_annee->date_debut; ?>
                   </option>
                   <?php
              }
              ?>
              </select>
              </p>
     
              <p><?php $periodeAnnee = array("01-01", "12-31");?>
              <input checked type="radio" name="periode" value=<?php echo urlencode(serialize($periodeAnnee));?> id="annee" /> 
              <label for="annee">Année entière</label><br />
              </p>
     
         <input type="submit" value="Rechercher" alt="Rechercher" class="bouton" title="Effectuer une recherche"/>
     
    </fieldset>
    </form>
     
    </div> <!-- blockForm de recherche -->
    </div> <!-- formulaire -->
    Je transmet mes données grâce au code suivant (qui est à la suite de l'autre sur la même page) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <DIV id="listing">
    <?php
         if($recherche == 1)
         {
              $annee = "&annee=".$_POST['annee'];
              $periode = "&periode=".$_POST['periode'];
              echo "<iframe height=\"100%\" width=\"100%\" src='stats_qpr.php?recherche=". $recherche . $annee . $periode ."'></iframe>";
         }
         else
         {
              echo '<iframe height="100%" width="100%" src="stats_qpr.php?recherche='. $recherche .'"></iframe>';
         }
    ?>
    </DIV>
    Et je récupère les données ici (sur une autre page) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <div class="corpsPage">
    <?php
         // On vérifie si l'utilisateur a effectué une recherche ou non
         if($_GET['recherche'] == 0) // Pas de recherche, on affiche par défaut les statistiques de l'année en cours
         {
              afficherDiagrammes($aujourdhui);
         }
         else
         {
              if(isset($_GET['periode']) === FALSE) // je le reçoit bien donc pas de soucis ici
              {
                   echo "pas reçu";
              }
              else
              {
              echo gettype($_GET['periode'])."<br/>";// ça me dit que c'est un string donc je le désérialize
              echo $_GET['periode']."<br/>"; // ça ne m'affiche rien comme si c'était vide :?
              }
     
         $periode = @unserialize($_GET['periode']);
         echo $periode . "<br/>"; // ici ça m'affiche Array 
         if (is_array($periode) === FALSE)
         {
              echo "ce n'est pas un tableau <br/>";
         }
     
         $aujourdhui = array($_GET['annee'], $periode);
         //afficherDiagrammes($aujourdhui);
         }
     
    ?>
    </div> <!-- corpsPage -->
    Comme vous le voyez, ça m'affiche Array au lieu des données de l'array.

    Je ne comprends pas pourquoi.

    Pouvez-vous m'aider ?

    Cordialement

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un echo d'un array affiche effectivement Array().

    tu peux utiliser les fonctions serialize() et urlencode() pour transmettre ton tableau dans l'url.

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    j'ai mis ce code là pour transmettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <DIV id="listing">
    <?php
         if($recherche == 1)
         {
              $annee = "&annee=".$_POST['annee'];
              $periode = "&periode=".urlencode(serialize($_POST['periode']));
              echo "<iframe height=\"100%\" width=\"100%\" src='stats_qpr.php?recherche=". $recherche . $annee . $periode ."'></iframe>";
         }
         else
         {
              echo '<iframe height="100%" width="100%" src="stats_qpr.php?recherche='. $recherche .'"></iframe>';
         }
    ?>
    </DIV>
    Désormais ça ne m'affiche plus Array mais s:5:"Array";

    tu aurais une solution ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'avais pas fait attention au fait qu'il etait déjà seralisé dans le premier script.
    Par contre il manque les guillemets pour l'encadrer dans le value

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    En effet je l'avais déjà sérialisé et j'avais oublié les " "

    j'ai donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <p><?php $periodeAnnee = array("01-01", "12-31");?>
         <input checked="checked" type="radio" name="periode" value="<?php echo urlencode(serialize($periodeAnnee));?>" id="annee" /> 
         <label for="annee">Année entière</label><br />
    </p>
    et pour l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <DIV id="listing">
    <?php
         if($recherche == 1)
         {
              $annee = "&annee=".$_POST['annee'];
              $periode = "&periode=".urlencode(serialize($_POST['periode']));
              echo "<iframe height=\"100%\" width=\"100%\" src='stats_qpr.php?recherche=". $recherche . $annee . $periode ."'></iframe>";
         }
         else
         {
              echo '<iframe height="100%" width="100%" src="stats_qpr.php?recherche='. $recherche .'"></iframe>';
         }
    ?>
    </DIV>
    Malgré cela j'ai toujours s:5:"Array"; qui s'affiche sur mon autre page

  6. #6
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Malgré cela j'ai toujours s:5:"Array"; qui s'affiche sur mon autre page
    non en fait j'ai : s:74:"a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%2201-01%22%3Bi%3A1%3Bs%3A5%3A%2212-31%22%3B%7D";

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    non en fait j'ai : s:74:"a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%2201-01%22%3Bi%3A1%3Bs%3A5%3A%2212-31%22%3B%7D";
    et après désérialisation j'ai :

    a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%2201-01%22%3Bi%3A1%3Bs%3A5%3A%2212-31%22%3B%7D

  8. #8
    Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    55
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    j'ai supprimé le .urlencode(serialize()) que j'avais ajouté dans l'URL

    et maintenant c'est bon, je récupère correctement mes données
    Merci sabotage, en fait c'était juste les " " qu'il manquait


    voici donc mon code :

    dans le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <p><?php $periodeAnnee = array("01-01", "12-31");?>
    	<input checked="checked" type="radio" name="periode" value="<?php echo urlencode(serialize($periodeAnnee));?>" id="annee" /> 
    	<label for="annee">Année entière</label><br />
    </p>
    pour l'url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $annee = "&annee=".$_POST['annee'];
    $periode = "&periode=".$_POST['periode'];
    echo "<iframe height=\"100%\" width=\"100%\" src='stats_qpr.php?recherche=". $recherche . $annee . $periode ."'></iframe>";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Lire un tableau via VBA pour remplir un formulaire
    Par kimai dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/07/2012, 10h07
  2. Transmettre un tableau PHP par formulaire
    Par Amaury_35 dans le forum Langage
    Réponses: 5
    Dernier message: 11/08/2009, 09h14
  3. transmettre un tableau via un formulaire
    Par laloupiote dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2007, 19h54
  4. [Tableaux] transmettre tableau via un formulaire
    Par calitom dans le forum Langage
    Réponses: 5
    Dernier message: 05/12/2006, 19h30
  5. ecrire des valeurs dans un tableau via formulaire
    Par kenny49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/07/2006, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo