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 :

Passage d'un tableau en champ hidden


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 97
    Points
    97
    Par défaut Passage d'un tableau en champ hidden
    Bonjour,

    Je bute et ne trouve pas la solution à mon problème.

    J'ai un tableau crée comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab_rapport[$_POST['ref_referentiel']]=array( "notes"=>$_POST['rapport']);
    Dans un formulaire pour ne pas perdre le contenu du tableau, je le passe en champ hidden
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($tab_rapport as $key=>$value){
        echo "<input type='hidden' name='tabrapport[$key][notes]' value='$tab_rapport[$key][notes]'>";
    }
    La syntaxe est fausse et j'obtiens une alarme Illegal offset type .

    Or tout fonctionne bien lorsque je ne passe qu'une seule valeur comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach ($tab_rapport as $key){
        echo "<input type='hidden' name='tabrapport[$key]' value='$key'>";

    Mon problème :

    Quelle est la syntaxe pour passer dans un (ou plusieurs) champs hidden la totalité d'un tableau comportant plusieurs champs ?

    Merci par avance.

  2. #2
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    tu as oublié les quotes pour l'indice notes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($tab_rapport as $key=>$value){
        echo "<input type='hidden' name='tabrapport[$key]["notes"]' value='$tab_rapport[$key]["notes"]'>";
    }
    après je ne sais pas si il faut les échapper ou pas, mais essayes comme ca d'abord...

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par vorace Voir le message
    tu as oublié les quotes pour l'indice notes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($tab_rapport as $key=>$value){
        echo "<input type='hidden' name='tabrapport[$key]["notes"]' value='$tab_rapport[$key]["notes"]'>";
    }
    après je ne sais pas si il faut les échapper ou pas, mais essayes comme ca d'abord...
    pas besoin de quote coté HTML

  4. #4
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Points : 915
    Points
    915
    Par défaut
    pas besoin de quote coté HTML
    peut être pour le champs 'name' de l'input mais pour récupérer la valeur à affecter à l'attribut 'value' faut bien des quotes...

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par vorace Voir le message
    peut être pour le champs 'name' de l'input mais pour récupérer la valeur à affecter à l'attribut 'value' faut bien des quotes...
    non


    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
    <?php
    echo '<pre>', print_r($_GET, true), '</pre>'; 
    ?>
    <form action="" method="get">
        <input type="hidden" name="tabrapport[5][notes]" value="test" />
        <input type="hidden" name='tabrapport[5]["notes"]' value="test quote" />
        <button type="submit">test !!!</button>
    </form>
    <!--
    Array
    (
        [tabrapport] => Array
            (
                [5] => Array
                    (
                        [notes] => test
                        ["notes"] => test quote
                    )
     
            )
     
    )
    -->

  6. #6
    Membre régulier Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 97
    Points
    97
    Par défaut Solution du problème
    Comme je m'en doutais la solution était simple.

    En fait la syntaxe est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
        foreach ($tab_rapport as $key=>$value){
            echo "<input type='hidden' name='tabrapport[$key][notes]'
            value='{$tab_rapport[$key][notes]}'>";
        }
    Il manquait dans value le signe { en début et } en fin car la valeur est lui même un tableau.


    Merci à tous.


  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    si tu veux faire quelque chose de plus propre utilise sprintf ou écrit du PHP dans du HTML (et non l'inverse)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($tab_rapport as $key=>$value): ?>
    <input type="hidden" name="tabrapport[<?php echo $key; ?>][notes]" value="<?php echo $tab_rapport[$key]['notes']; ?>" />
    <?php endforeach; ?>

  8. #8
    Membre régulier Avatar de alain78
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 160
    Points : 97
    Points
    97
    Par défaut Question de lisibilité
    Citation Envoyé par stealth35 Voir le message
    si tu veux faire quelque chose de plus propre utilise sprintf ou écrit du PHP dans du HTML (et non l'inverse)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($tab_rapport as $key=>$value): ?>
    <input type="hidden" name="tabrapport[<?php echo $key; ?>][notes]" value="<?php echo $tab_rapport[$key][notes]; ?>" />
    <?php endforeach; ?>
    Merci pour ce conseil. Personnellement je trouve beaucoup plus lisible le code lorsque c'est html qui est encapsulé dans le PHP. En effet, l'insertion de toutes les balises PHP ( ?> <?) me gènent dans la lisibilité du code.

    HTML dans PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach ($tab_rapport as $key=>$value){
            echo "<input type='hidden' name='tabrapport[$key][notes]'
            value='{$tab_rapport[$key][notes]}'>";
        }
    PHP dans HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php foreach ($tab_rapport as $key=>$value): ?>
    <input type="hidden" name="tabrapport[<?php echo $key; ?>][notes]" value="<?php echo $tab_rapport[$key][notes]; ?>" />
    <?php endforeach; ?>
    Je sais qu'avec ma méthode, je fais faire au serveur Apache ce que le navigateur sait faire.
    Peut être qu'un jour j'inverserai mon codage.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    tu peux toujours utiliser (s)printf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($tab_rapport as $key=>$value)
    {
        printf('<input type="hidden" name="tabrapport[%s][notes]" value="%s">', $key, $tab_rapport[$key]['notes']);
    }
    ps : coté PHP c'est $tab_rapport[$key]['notes']
    je te conseil de mettre ton niveau d'erreur au maximum

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

Discussions similaires

  1. passage de variable dans un champ hidden
    Par dgkourou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/02/2013, 11h40
  2. Passage de paramètres dans champ hidden
    Par benassis dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/05/2005, 01h22
  3. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50
  4. Passage d'un tableau par référence?
    Par sebduth dans le forum C
    Réponses: 9
    Dernier message: 16/07/2003, 18h32
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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