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 :

Passer un tableau dans un lien


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Giantrick
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 300
    Points : 195
    Points
    195
    Par défaut Passer un tableau dans un lien
    Bonjour à tous,

    Voilà, j'ai un souci pour passer un tableau comme variable dans un lien.

    Voici mon code dans ma page de lien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tab_valeur_vide[$cle]=$valeur_vide; // création de mon tableau
    echo "<a href='./test.php?tab_valeur_vide=$tab_valeur_vide'>retour</a>";
    voici mon code dans ma page "test.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($_GET['tab_valeur_vide'] as $cle=>$val_vide)
    {
    echo"$cle = $val_vide<br />";	
    }
    voici le message dans ma page "test.php"

    "Warning: Invalid argument supplied for foreach() in "
    nb : j'ai testé mon tableau avant de le passer dans le lien et il est complet.

    Je pense que c'est encore une fois mon manque de connaissance dans ce domaine, mais je sèche.

    Merci d'avance de vos retour rapide.

  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
    tu peux utiliser les fonctions serialize/unserialize pour faire transiter un tableau.

  3. #3
    Membre habitué Avatar de Giantrick
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 300
    Points : 195
    Points
    195
    Par défaut
    Citation Envoyé par sabotage Voir le message
    tu peux utiliser les fonctions serialize/unserialize pour faire transiter un tableau.
    Je viens de tester le serialize/unserialize.

    Le "serialize" fonctionne car lorsque je vais sur mon lien, je vois bien le contenue comme dans mon print_r de ma variable "serializé".

    Par contre dès que je clique dessus pour passer à mon autre page, mes données sont inaccessibles sur la page suivante.

    voici mon code pour "serializé" mon tableau et après lecture sur la meme page, les données sont bien dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab_valeur_vide[$cle]=$valeur_vide;
    $ser_tvv= serialize($tab_valeur_vide);
    echo"<a href='test.php?tab_valeur_vide=$ser_tvv'>retour</a>";

    voici mon code pour lire le tableau "serializé" dans ma page 'test.php'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tab_valeur_vide1=unserialize($_GET['tab_valeur_vide']);
     
    print("visu :");
    print_r("$tab_valeur_vide1<br />");
    lors de l'affichage il n'y a rien sinon "visu :"

    Je n'y comprend plus rien ?

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut
    pourquoi ne pas utiliser une variable session pour passer ton tableau.

    A+

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r("$tab_valeur_vide1<br />");
    pourquoi il y a un 1 ?

  6. #6
    Membre habitué Avatar de Giantrick
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 300
    Points : 195
    Points
    195
    Par défaut
    Citation Envoyé par aityahia Voir le message
    salut
    pourquoi ne pas utiliser une variable session pour passer ton tableau.

    A+
    je ne préfère pas utiliser des variables de sessions pour ce tableau qui ne me servira qu'une fois.


    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r("$tab_valeur_vide1<br />");
    pourquoi il y a un 1 ?
    Juste pour ne pas mélanger les variables mais j'aurais pu la renommer de la même façon, c'était pour les distinguer c'est tout.

  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
    Pour debugger il vaut mieux faire des choses simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var_dump($_GET['tab_valeur_vide']);
    echo '<br/>';
    $tab_valeur_vide1=unserialize($_GET['tab_valeur_vide']);
    print_r($tab_valeur_vide1);

  8. #8
    Membre habitué Avatar de Giantrick
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 300
    Points : 195
    Points
    195
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour debugger il vaut mieux faire des choses simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var_dump($_GET['tab_valeur_vide']);
    echo '<br/>';
    $tab_valeur_vide1=unserialize($_GET['tab_valeur_vide']);
    print_r($tab_valeur_vide1);
    voilà le résultat :
    string(2) "N;"

  9. #9
    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
    Mais ton tableau contient vraiment quelque chose au départ ?

  10. #10
    Membre habitué Avatar de Giantrick
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    300
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 300
    Points : 195
    Points
    195
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Mais ton tableau contient vraiment quelque chose au départ ?
    oups autant pour moi, j'avais changé un bout de code dans ma page initial et du coup j'avais un tableau vide.

    Donc après modification de mon code source (page d'origine), je passe bien mon tableau "serializé" dans ma seconde page.

    voici le code de ma page "test.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
     
     
    var_dump($_GET['tab_valeur_vide']);
    echo '<br/>';
    $tab_valeur_vide1=unserialize($_GET['tab_valeur_vide']);
    print_r($tab_valeur_vide1);
     
    print("visu :");
    print_r("$tab_valeur_vide1<br />");
     
    foreach($tab_valeur_vide1 as $cle=>$val_vide)
    {
    echo"$cle => $val_vide<br />";	
    }
    et voici le résultat de l'affichage, qui confirme que la variable passe bien avec son contenu.

    Par contre, je n'arrive pas à comprendre pourquoi j'ai un message d'erreur dans mon foreach et que le contenu ne s'affiche pas dans le print_r non plus.

    string(112) "a:2:{s:17:\"form_public_prive\";s:21:\"form_public_prive_red\";s:12:\"form_type_id\";s:16:\"form_type_id_red\";}"
    visu :

    Warning: Invalid argument supplied for foreach() in

Discussions similaires

  1. [AJAX] passer un tableau dans xhr.send() ?
    Par beegees dans le forum AJAX
    Réponses: 10
    Dernier message: 23/03/2009, 14h39
  2. tableau dans un lien
    Par Metalyn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/03/2008, 20h15
  3. probleme de passer une variable dans un lien
    Par _momo dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/08/2007, 15h54
  4. Réponses: 1
    Dernier message: 28/12/2006, 17h02
  5. [Tableaux] Passer un tableau dans une requête HTTP ??
    Par haffouff dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2006, 17h17

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