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 :

Convertir un tableau associatif en string et inversement


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut Convertir un tableau associatif en string et inversement
    Bonjour
    Je gère le site de ma chorale. Ce site est bâti avec des frames.
    En local, je suis en PHP 5.2.0 et mysql 5.0.22
    Chez l'hébergeur (pages perso de Free) c'est PHP 5.1.3RC4-dev et mysql 5.0.77
    Je développe actuellement un module de gestion des dons reçus par l'association.
    Ce module propose notamment de lister les dons.
    Un formulaire permet de sélectionner les années fiscales à afficher ou les dates début et fin de la période à afficher et de sélectionner les types de donateurs à prendre en compte*:personne physique, morale ou les deux.
    Dans la liste des dons, seules quelques données sont affichées parmi l'ensemble des champs de la table des dons, et, pour chaque don, un lien permet d'accéder à une page affichant en visualisation tous les champs de l'enregistrement.
    Afin de passer les critères de sélection à la page affichant tous les champs d'un don ( afin de ré-afficher les mêmes dons lors du retour à la liste), j'ai créé, dans le script d'action du formulaire, une variable string à partir du $_POST en utilisant la fonction php http_build_query et cette variable est passée en paramètre de l'url pointant vers la page Détails d'un don.
    Dans cette dernière page, il y a un lien pour le retour vers la page Liste des dons et c'est là que je bloque.
    J'ai mis la variable string en paramètre de l'url de retour mais je ne parviens pas à convertir cette chaîne en tableau associatif (l'équivalent du $_POST de départ) pour refaire la sélection des dons. Existe-t-il une fonction inverse de http_build_query pour faire cela*? Sinon, comment faire*?
    Merci d'avance.
    Cordialement

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    J'ai mis la variable string en paramètre de l'url de retour mais je ne parviens pas à convertir cette chaîne en tableau associatif (l'équivalent du $_POST de départ) pour refaire la sélection des dons. Existe-t-il une fonction inverse de http_build_query pour faire cela*? Sinon, comment faire*?
    Tu trouveras les paramètres de l'URL dans $_GET, ex. :

    https://www.example.net/page.php?foo=bar&baz=qux

    Dans page.php tu auras un tableau $_GET qui vaudra :

    foo => bar
    baz => qux
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut conversion d'un tableau associatif en string et l'inverse
    Merci pour la réponse
    J'avais essayé avec $_GET, mais sans succès. Je vais me remettre à l'ouvrage.
    Je ne peux pas voir l'exemple : lorsque je clique sur le lien, j'arrive sur une page Example domain quasi vide.
    Cordialement

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Je ne peux pas voir l'exemple
    Tu n'étais pas censé y accéder, c'est juste une illustration.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut Je n'y arrive toujours pas....
    Bonjour

    Dans l'url permettant d'afficher la page présentant les détails d'un don, je passe en paramètres tous les critères de sélection des dons listés.
    Avec $_GET, je récupère bien un array de tous ces critères*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    array(8) {
        ["don_id"]=> string(5) "10001"
        ["selDates"]=> string(6) "anFisc"
        ["selPers"]=> string(2) "TT"
        ["anFiscDeb"]=> string(4) "2021"
        ["anFiscFin"]=> string(4) "2021"
        ["DateDeb"]=> string(0) ""
        ["DateFin"]=> string(0) ""
        ["valider"]=> string(21) "Afficher la sélection"
    }
    Avec http_build_query, j'en fais un string que je passe en paramètre de l'url permettant de revenir vers la liste des dons*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $strCritListDons = http_build_query ($_GET);
    $strCritListDons vaut :

    "don_id=10001&selDates=anFisc&selPers=TT&anFiscDeb=2021&anFiscFin=2021&DateDeb=&DateFin=&valider=Afficher+la+s%E9lection"
    Lorsque je clique sur le lien de retour vers la liste, la page n'affiche rien car la variable $_GET ne voit qu'un seul paramètre( au lieu de 8).
    Le var_dump de $_GET vaut*:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array(1) {
        ["critListDons"]=> string(16) "$strCritListDons"
    } string(0) ""
    Qu'est-ce que je ne fais pas comme il faut*?
    Merci d'avance.
    Cordialement

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    vous n'avez pas besoin de http_build_query pour faire cela.
    pour construire l'url de la page de retour, vous allez parcourir le tableau $_GET avec "foreach" par exemple :
    https://g-rossolini.developpez.com/t...age-3#LIII-K-7

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par jumaro Voir le message
    Le var_dump de $_GET vaut*:
    array(1) { ["critListDons"]=> string(16) "$strCritListDons" } string(0) ""
    La variable $strCritListDons n'est pas interpolée.

    Tu dois avoir quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="page.php?strCritListDons=$strCritListDons">Retour</a>';
    Alors qu'il faudrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="page.php?<?= $strCritListDons ?>">Retour</a>
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  8. #8
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut ca progresse mais...
    Bonjour
    Mathieu et Séb, merci pour vos réponses.
    J'ai exploité celle de Séb qui demande moins de modifications. Maintenant, après avoir inséré le petit bout de php dans l'url, le var_dump($_GET) affiche bien, sur la page Liste des dons, un array de 8*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    array(8) {
        ["don_id"]=> string(5) "10001"
        ["selDates"]=> string(6) "anFisc"
        ["selPers"]=> string(2) "TT"
        ["anFiscDeb"]=> string(4) "2021"
        ["anFiscFin"]=> string(4) "2021"
        ["DateDeb"]=> string(0) ""
        ["DateFin"]=> string(0) ""
        ["valider"]=> string(21) "Afficher la sélection"
    }
    Malheureusement, la liste des dons ne s'affiche toujours pas.... Je vais chercher à comprendre pourquoi, en espérant ne pas devoir vous solliciter à nouveau.

    Cordialement

  9. #9
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    pour débuguer ce genre de souci, pensez à bien découper les différentes étapes.
    par exemple la 1re étape est de récupérer les bonnes informations pour l'affichage de la page, si par exemple vous vous attendez à afficher les données de 2010 et que vous avez 2021 dans "anFiscDeb", le problème est peut être là.
    ensuite la 2e partie est de construire l'url pour que la page soit appelée avec les bon arguments dans l'url.
    et pour finir, si la page est appelée avec les bonnes valeurs, la 3e partie est d'étudier le code de cette page pour voir à quel endroit cela bloque.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2018
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2018
    Messages : 33
    Points : 15
    Points
    15
    Par défaut ça fonctionne...
    Bonjour
    ça y est, la liste des dons s'affiche. A un stade précédent du développement, j'envisageais quelque chose de différent et j'avais conditionné l'affichage de la liste à la validation du formulaire. Cela ne se vérifie pas dans le cas du retour depuis la page Détails d'un don. J'ai supprimé la condition et la liste s'affiche bien.
    Merci Mathieu pour tes conseils de méthode et merci à tous pour votre aide.
    A tout hasard, je me permets de vous présenter dans les grandes lignes la suite du projet.
    Une bonne part du développement doit permettre d'éditer et diffuser par voie postale ou par mail les reçus fiscaux et les courriers d'accompagnement puis éditer et diffuser des invitations à des concerts de la chorale (liées légalement à des dons) et les courriers d'accompagnement par voie postale ou par mail. Du publipostage, en somme.
    Cordialement.

Discussions similaires

  1. [Débutant] Convertir un tableau de byte en string
    Par bipbip2006 dans le forum C#
    Réponses: 4
    Dernier message: 04/07/2011, 22h41
  2. prob string a convertir en tableau de char
    Par lapinette dans le forum Débuter
    Réponses: 11
    Dernier message: 11/06/2010, 08h42
  3. Réponses: 8
    Dernier message: 13/11/2009, 14h50
  4. Réponses: 22
    Dernier message: 04/05/2009, 17h50
  5. convertir un tableau de type string en type double
    Par saraenim dans le forum Windows Forms
    Réponses: 8
    Dernier message: 12/05/2008, 15h45

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