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 :

[Tableaux] Tableau à double entrée de checkbox


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut [Tableaux] Tableau à double entrée de checkbox
    Bonjour à tous,

    je bloque sur un petit truc pour récupérer une liste de valeur avec les checkbox. Je connais la méthode pour récupérer cette liste mais là, le nom du champ est déjà un élément d'un tableau.

    Voici le code html du formulaire que je vais expliquer
    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
     
    <form name="formulaire" method="post" action="mapage.php">
       <table>
          <tbody>
             <tr><td>Auteur<input type="text" name="champ[8]" /></td></tr>
             <tr><td>Service<input type="text" name="champ[9]"/></td></tr>
             <tr><td>Téléphone<input type="text" name="champ[7]"/></td></tr>
             <tr><td>Catégorie (s)<input type="checkbox" name="champ[10][7]"  value="oui" /> METHODE
                    	<br/><input type="checkbox" name="champ[10][8]"  value="oui" />cat1
                      <br/><input type="checkbox" name="champ[10][9]"  value="oui" />cat2
                      <br/><input type="checkbox" name="champ[10][10]"  value="oui"/>cat3
                      <br/><input type="checkbox" name="champ[10][11]"  value="oui"/>cat4
                      <br/><input type="checkbox" name="champ[10][12]" value="oui"/>cat5
                      <br/><input type="checkbox" name="champ[10][13]"  value="oui"/>cat6
                </td></tr>
             <tr><td>autres catégories proposées<input type="text" name="champ[11]" /></td></tr>                                    
          </tbody>
        <tfoot>
          <tr><td><a href="#" onclick="document.formulaire.submit();">Enregistrer</a></td></tr>
          </tfoot>
        </table>
    </form>
    - Je récupère cette liste de champs d'une base de données, ainsi que la liste des valeurs de la checkbox; ce qui explique les id qui ne suivent pas.
    - En postant le formulaire, je reçois bien mes infos en faisant un print_r($_POST['champ']) sauf pour le champ '10' (champ de la checkbox) où l'on me renvoit
    Là je me dis normal et je fais une boucle sur le tableau $_POST['champ'] avec un print_r, mais rien ne change et j'ai toujours 'array'.

    Est-ce que le problème vient de mon formulaire ? ou la question : comment récupérer un tableau à double entrée formée de cette manière en php ?

    par avance merci.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Quel est le résultat de ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump('<pre>', $_POST['champ'], '</pre>');


    Est-ce que le résultat change si tu coche/décoche des checkbox ?

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    Bonjour Monsieur N,

    peut importe le nombre ou celles que je coche, j'obtiens le résultat suivant :

    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
    string(5) "
    
    "
    array(10) {
      [8]=>
      string(17) "mon nom"
      [5]=>
      string(15) "mon adresse
      [6]=>
      string(4) "ma ville"
      [9]=>
      string(13) "Dev"
      [7]=>
      string(10) "mon tel"
      [10]=>
      string(5) "Array"
      [11]=>
      string(0) ""
      [12]=>
      string(0) ""
      [13]=>
      string(2) "pb"
      [14]=>
      string(8) "solution"
    }
    string(6) "
    
    "
    Merci pour ce test, je n'avais pas essayé. C'est bien ce que je soupçonnais : on dirait que c'est le formulaire html qui renvoie 'array' comme une string.

    Merci de t'être penché sur la question.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    C'est pas Monsieur mais Mr

    Est-ce que tu appliques un traitement sur ton tableau $_POST ? (genre pour les magic_quotes ou autre pre-traitement ?
    Si non, alors peux-tu mettre le code de mapage.php ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Je serais hyper surpris que le HTML sache ce que c'est qu'un tableau et qu'il comprenne la syntaxe associé...

    Serais-je sur le point d'apprendre quelque chose ou est-ce bien r-zo qui s'imagine des choses sur le HTML !?

  6. #6
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    Je n'imagine rien mais je me demandais si l'HTML supportait ce type de syntaxe (je parle des '[x][y]').

    @ Mr N : le code de MaPage.php est trop complexe pour le donner en ligne mais je te remercie pour ton aide.

    (2 minutes plus tard)
    A défaut d'avoir trouvé la solution Mr N, tu m'as mis sur la voie, j'ai trouvé ce qui me foutait tout en l'air

    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
     
    $exception=array();
    $recherche = array ( "'<script[^>]*?>.*?</script>'si",
                            "'<iframe[^>]*?>.*?</iframe>'si"
                            );
    $remplace = array ("","");
     
    // pour les variables GET
    if ($_GET)
    foreach($_GET as $key=>$value)
    {
       if(!in_array($key,$exception)) $_GET[$key]=str_replace("\r","",preg_replace($recherche, $remplace, $value));
    }
     
    $exception=array();
     
    // pour les variables POST
    if ($_POST)
    foreach($_POST as $key=>$value)
    {
       if(!in_array($key,$exception)) $_POST[$key]=str_replace("\r","",preg_replace($recherche, $remplace, $value));
    }
     
    $exception=array();
     
    // pour les variables SESSION
    if ($_SESSION)
    foreach($_SESSION as $key=>$value)
    {
       if(!in_array($key,$exception)) $_SESSION[$key]=str_replace("\r","",preg_replace($recherche, $remplace, $value));
    }
    Oui, je l'avoue, c'est un truc de barbare trouvé par hasard pour éviter que n'importe quoi soit saisie en POST. Mais je crois que c'est n'importe quoi.

    Merci et désolé pour le dérangement.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/08/2007, 10h47
  2. [Tableaux] tableau double entrée
    Par molesqualeux dans le forum Langage
    Réponses: 3
    Dernier message: 09/12/2005, 16h19
  3. tableau double entrée et requete sql
    Par oceane751 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2005, 15h25
  4. tableau double entrée
    Par Andrey dans le forum C
    Réponses: 16
    Dernier message: 08/11/2005, 16h33
  5. [XSLT]tableau double entrée avec cellule manquante
    Par nferay dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 08/03/2005, 16h07

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