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 :

Concaténation dans une session


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut Concaténation dans une session
    Bonsoir, je vous explique j'ai un petit soucis au niveau d'une concatenation

    Je vous explique en gros, j'ai un formulaire à remplir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for($i=0;$i<$nbrPersonne;$i++) {
     
    echo "Année de naissance de la personne $i: <input type='text' name='annee'.$i>";
    echo "<input type='radio' name='typeFamille'.$i value='conjoint' /> Conjoint";
    echo "<input type='radio' name='typeFamille'.$i value='homme' /> Homme";
    echo "<input type='radio' name='typeFamille'.$i value='femme' /> Femme";
    echo "<input type='radio' name='typeFamille'.$i value='fille' /> Fille";
    echo "<input type='radio' name='typeFamille'.$i value='garcon' /> Garçon";
    echo "<br><br>" ;
    }
    (je vous met juste le bout de code important)

    Sur cette page, en appuyant que un bouton, ça renvoie sur une page où il y a ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $nbrPersonne=$_SESSION['nbrP'];
     
    for($i=0;$i<$nbrPersonne;$i++) {
    	if (!empty($_POST["annee".$i])){
    $_SESSION['annee'.$i]=$_POST['annee'.$i];
    }
    }
    J'aimerais réutiliser ces sessions sur une autres page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($i=0;$i<$nbrPersonne;$i++){
    	if (isset($_SESSION['annee$i'])){
    	$annee=$_SESSION['annee'.$i];
    	}
    	echo "Année de naissance de la personne $i : $annee, statut dans la famille : $typeFamille.$i<br/><br/>";
    }
    (j'ai fais un print_r($_SESSION) et les sessions ne sont pas marqués donc ..)


    Je vous explique un peut le but, je dois faire un site web avec une inscription de famille dans une BD. Sur la 1ere page, je demande le nombre de personnes dans la famille (qui correspond en gros à nbrPersonne pour la boucle), donc en fonction du nombre de personnes, afficher pil poil le nombre de champ à rempli avec les boutons radios). Mais sur une zone en bas de page, au fur et à mesure que la personne saisi des infos et passe d'une page à l'autre, afficher les infos déjà marqué ..

    Donc mes sessions n'affichent rien, je ne sais pas pourquoi.

    ps : si j'enlève les .$i ça fonctionne, bien évidemment ça sauvegarde que la 1ere valeur .. donc le soucis vient de l'incrémentation ..

    Merci !

    edit : pour le moment je m'occupe pas de récupérer le truc des boutons radios donc le $typeFamille.$i est 'inactif' pour le moment ..
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  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
    La il y a une faute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_SESSION['annee$i'])){
    Je te conseille par contre plutot d'utiliser directement des tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="radio" name="info[". $i . "][typeFamille] value="conjoint" /> Conjoint';
    Ainsi ensuite tout est déjà dans la boite et tu n'as plus besoin de savoir à l'avance combien tu as d'élements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['info']=$_POST['info'];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach ($_SESSION['info'] as $i=>$values) {
    echo "Année de naissance de la personne $i : " .  $values['annee'] . ", statut dans la famille : " . $values['typeFamille'] ."<br/><br/>";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Avec votre solution j'obtiens un warning :
    Warning: Invalid argument supplied for foreach() in C:\wamp\www\BanqueAlimentaire\vuesElementaires\vueRecapitulatifInfoFamille.php on line 155

    cette ligne correspond à la première de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($_SESSION['info'] as $i=>$values) {
    echo "Année de naissance de la personne $i : " .  $values['annee'] . ", statut dans la famille : " . $values['typeFamille'] ."<br/><br/>";
    }
    Sinon pour cette partie de code, il manque un guillemet non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="radio" name="info[". $i . "][typeFamille] value="conjoint" /> Conjoint';
    J'en ai rajouté un après typeFamille ([typeFamille"]), mais je pense pas que ça marche comme ça ..

    Merci d'avance
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  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
    Heu oui pardon j'ai patouillé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="radio" name="info['. $i . '][typeFamille] value="conjoint" /> Conjoint';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Merci cependant j'ai toujours un soucis avec ce warning :
    Warning: Invalid argument supplied for foreach() in C:\wamp\www\BanqueAlimentaire\vuesElementaires\vueRecapitulatifInfoFamille.php on line 155

    qu'est-ce qu'il veut dire ?*

    edit : après rectification cela fonctionne malheureusement quand j'arrive sur ma première vue j'ai cette erreur de foreach, cependant une fois que j'ai rempli les champs le warning par, il y a un moyen d'éviter ce warning au début ?

    merci
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  6. #6
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Le paramètre passé à ton foreach n'est surement pas un tableau

  7. #7
    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
    Tu peux faire un test avec isset() avant
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Merci, ça fonctionne pour l'année =)

    Cependant pour type famille, comme ce sont des boutons radios, sa me retourne seulement "on" si un des boutons radio est coché, sinon ça affiche rien .. j'ai tenter de faire un if(.$values[typeFamille].=='conjoint') par exemple et afficher conjoint .. mais cela ne semble pas fonctionner comme ça, une petite aide supplémentaire svp ?

    merci
    Règle N° 1 : Si tout va bien, ne touchez à rien.

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

Discussions similaires

  1. [Interbase] Recordset dans une session ?
    Par hxt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2006, 15h49
  2. Réponses: 3
    Dernier message: 20/05/2006, 23h28
  3. Réponses: 7
    Dernier message: 15/05/2006, 13h36
  4. Entrer dans une session sans devoir cliquer sur ok au demarr
    Par beegees dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 22/12/2005, 10h50
  5. [Sécurité] Variables dans une session
    Par philippef dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 16h30

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