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] Utiliser une boucle for dans un echo


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 14
    Points
    14
    Par défaut [Tableaux] Utiliser une boucle for dans un echo
    Bonjour,
    Je voudrais pouvoir transmettre un nombre de variables par un lien hypertexte.
    Ces vriables proviennent d'un tableau qui n'a pas la même taille (donc le nombre de variable varie).
    (j'espère avoir été assez claire jusque là )
    je vais vous montrer mon code pour aider à m'exprimer:

    Page Index.php
    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
    <?PHP
     
    $phrase = "107,110,587,113,478,397,101,399"; //tableau
    echo "$phrase<hr>";
    $tableau = array(); //création du tableau pour récupérer chaque valeur
    $tableau[0] = strtok($phrase, ",");
    $i=1;
    while ($car = strtok(", "))
    { $tableau[$i++] = $car;
    }
    echo "$i mots : <br>";
    for ($j=0; $j<$i; $j++)
    echo "$j --> $tableau[$j]<br>";
    $test=count($tableau);  //calcul le nombre de variable à transmettre
    $i=0;
     
    //affichage du lien hypertexte avec les variables à transmettre
    echo"<a href=\"tableau.php?".
    for($i=0;$i<=7;$i++){
        ."&var$i=".$tableau[$i]
        }."\">Transmettre variable</a>
    
    ";
    ?>

    Page tableau.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $nbre=$_GET['nombre']; //Nombre de variable qui a été transmis
    for($i=0;$i<=$nbre;$i++){
    $valeur.$i=$_get['var$i'];
    }
    echo $valeur;
     
     
     
    ?>

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    donc dans mon "a href" je veux mettre une boucle for pour indiquer toutes les variables a faire passer.

  3. #3
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Commences pas faire ta boucle for en premier, tu stockes les paramètres dans une variable puis ensuite tu utilises cette variable dans ton href.

  4. #4
    Membre actif Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Points : 205
    Points
    205
    Par défaut
    Pour ton petit bout de code en fin de script moi je ferais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $url = '<a href="tableau.php?nombre='.count($tableau);
    foreach($tableau as $indice => $value)
    {	
    	$url .= '&'.$indice.'='.$value;
    }
    $url .= '">Transmettre variable</a>';
    Tu devrais regarder la fonction foreach(), elle est vraiment pratique et allégerais ton code.

    Et puis pareil, les simple quote ' sont mieux que les guillemets " quand tu veux faire un echo avec du XHTML. Sinon tu t'amuses avec les \, enfin c'est un choix

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    justement j'allais me répondre tout seul

    En tout cas merci de ta réponse, car s'est que je viens de faire tout seul.
    Donc je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo"<a href=\"tableau.php?".
    for($i=0;$i<=7;$i++){
        ."&var$i=".$tableau[$i]
        }."\">Transmettre variable</a>
     
    ";
    par
    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
    $chaine="";
     
    for ($i=0;$i<$nb;$i++){
     
        if($chaine==""){
            $chaine="var".$i."=".$tableau[$i];
     
            }
        else{
            $temp=$chaine;
            $chaine=$temp."&var".$i."=".$tableau[$i];
            }
     
    }
     
    echo"<a href='tableau.php?$chaine'>transmettre variable</a>";
    Voilà, j'aurais dû encore réfléchir 30 min

  6. #6
    Membre actif Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Points : 205
    Points
    205
    Par défaut
    Citation Envoyé par maoboy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo"<a href='tableau.php?$chaine'>transmettre variable</a>";
    Voilà, j'aurais dû encore réfléchir 30 min

    Heu oui et pis tu vas encore perdre 5 min sur les guillemets mal placées;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="tableau.php?$chaine">transmettre variable</a>';

  7. #7
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par bigltnt
    Heu oui et pis tu vas encore perdre 5 min sur les guillemets mal placées;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="tableau.php?$chaine">transmettre variable</a>';
    Ca ne marchera pas la variable $chaine n'est pas interprété entre ' '...

    Il faudrait donc utiliser

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<a href=\"tableau.php?$chaine\">transmettre variable</a>";

    Mais la première forme devrait marcher aussi :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo"<a href='tableau.php?$chaine'>transmettre variable</a>";
    Such is the situation in our Fallen Galaxy

  8. #8
    Membre actif Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Points : 205
    Points
    205
    Par défaut
    Oui effectivement !
    Je me suis trompé autant pour moi. J'utilise la concaténation et jamais l'interprétration des variables je préfère :p

    Merci pour la correction !

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

Discussions similaires

  1. Utiliser une boucle "For" dans un" Select Case"
    Par Novice_vba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/04/2014, 09h34
  2. Utilisation des boucles for dans les tableaux VBA
    Par vodulci09 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2012, 20h42
  3. [MySQL] Calcule dans une boucle mysql dans un echo
    Par sinifer dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/05/2009, 12h40
  4. utiliser une boucle 'for' in JAsperReport
    Par Javix dans le forum Jasper
    Réponses: 6
    Dernier message: 13/12/2007, 10h05
  5. Une boucle for dans un switch case?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 14h05

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