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] probleme avec une liste de tableau non modifiable


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 4
    Par défaut [Tableaux] probleme avec une liste de tableau non modifiable
    Bien le bonjour tout le monde,
    Voila je suis sur le développement d'un framework personnel sans aucune prétention. Je commence donc à développer ma classe formulaire qui gere l'affichage et la reception.
    et en gros voila comment je définit un formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $form=array(
        array('type'=>'text', 'name'=>'adrMail','value'=>''),
        array('type'=>'text', 'name'=>'pseudo','value'=>'')
    );

    donc, pour l'afficher aucun probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($form as $line)
    {
        echo '<input type="'.$line['type'].'" name="'.$line['name'].'" value="'.$line['value'].'" />';
    }

    mais par contre impossible de modifier un élement , moi je pensé faire un truc comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($form as $line)
    {
        $line['value']=$_POST[$line['name']];
    }

    je tiens à préciser que si jafiche $line['value'] dans la boucle, j'obtiens bien la valeur mais ca modifie pas mon grd tableau $form.

  2. #2
    Membre chevronné
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Par défaut
    Citation Envoyé par maxmadden
    mais par contre impossible de modifier un élement , moi je pensé faire un truc comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($form as $line)
    {
        $line['value']=$_POST[$line['name']];
    }
    je tiens à préciser que si jafiche $line['value'] dans la boucle, j'obtiens bien la valeur mais ca modifie pas mon grd tableau $form.
    C'est tout à fait normale, un tableau utilisé par foreach fonctionne est référencé le travail est effectué sur une copie.

    je te propose une note de php.net :
    Note: Bien que le tableau soit référencé, foreach travaille sur une copie du tableau spécifié, et pas sur le tableau lui-même. Par conséquent, le pointeur de tableau n'est pas modifié, comme il le serait avec le fonction each(), et les modifications faites dans le tableau ne seront pas prises en compte dans le tableau original. Cependant, le pointeur interne du tableau original est avancé avec le traitement du tableau. En supposant sur la boucle foreach effectue tout le traitement, le pointeur interne du tableau sera à la fin du tableau.
    Depuis PHP 5, vous pouvez facilement modifier les éléments d'un tableau en faisant précéder la valeur $value avec &. Ceci aura pour effet d'assigner par référence au lieu de copier la valeur.
    foreach

Discussions similaires

  1. Réponses: 27
    Dernier message: 18/07/2007, 17h41
  2. Probleme avec une liste
    Par Papri dans le forum ANT
    Réponses: 3
    Dernier message: 14/02/2007, 15h18
  3. Probleme avec une liste chainée
    Par apen2k2 dans le forum C
    Réponses: 7
    Dernier message: 14/12/2006, 16h31
  4. petit probleme avec une liste chainée
    Par kamouminator dans le forum C
    Réponses: 26
    Dernier message: 06/11/2006, 20h18
  5. [MySQL] Problème avec une liste déroulante
    Par leloup84 dans le forum SQL Procédural
    Réponses: 19
    Dernier message: 24/01/2006, 12h57

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