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 :

[PHP-JS] Une variable PHP dans une autre page


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut [PHP-JS] Une variable PHP dans une autre page
    Bonjour tout le monde, j'ai un souci : j'arrive pas à passer ma variable php d'une page à l'autre en url.

    Après de nombreux essais dans mon code global sans résultat, je me suis fait 2 pages .php hyper simples :

    La première contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="recepvar.php?nom=Chouchou>Le lien affiché</a>
    La 2ème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo 'Bienvenue sur cette page, ' . $nom; ?>
    Alors quand j'utilise le lien : j'ai une nouvel fenêtre qui m'indique :


    Notice: Undefined variable: nom in C:\Documents and Settings\bla\bla\bla\site\recepvar.php on line 1
    Bienvenue sur cette page,

    Alors que dans l'adresse de la page nous avons :

    http://127.0.0.1/site/recepvar.php?nom=Chouchou

    Mais pourquoi alors, je ne peux pas utiliser cette variable?

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    si les variables global sont a off tu dois passer par la syntaxe adequate
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Merci, t'as mis fin à mes tortures.
    Je vais tenter maintenant sur l'ensemble de mon code

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Bon voila que je passe aux choses plus sérieuses et que rien ne fonctionne.

    En fait, la variable que je souhaite de récupérer c'est une $_POST['auteur], d'un formulaire. je souhaiterais de la passer dans une autre page via URL.

    Je ne veux pas la récupérer avec un submit. En effet, je voudrais mettre à la disposition des utilisateurs un lien qui leur permet d'aller sur une autre page ou ils auront les informations qui prennent beaucoup de place.

    Par exemple, j'ai une sortie de requête SQL, ici, le titre, le nom de l'auteur et le résumé d'un livre que je voudrais proposer sous forme d'un lien vers une autre page. Puisqu'un résumé devient vite encombrant dans un tableau.

    Je pensais faire un href vers une page ou je traiterait la requête qui me permettra d'afficher le résume du livre choisit par l'utilisateur.

    Il y a peut être un autre moyen de gérer cette affichage?

    Cordialement,
    Nooby.

  5. #5
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Je pense avoir à peu près compris ce que tu veux faire, mais qu'est-ce qui ne fonctionne pas ?

    A première vue, il faut que tu crées une page comme resume.php, et que tu fasses des lien vers cette page de la forme resume.php?id_livre=12

    C'est ça ?

  6. #6
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    avec un POST tu dois avoir un submit (plus ou moins transparent avec du javascript)

    avec un GET tu peux transferer des variables avec de simple lien href
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    J'essaie de suivre une autre piste.

    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
     
    $resultat=mysql_query($sql) or die ("requète non executé");
    if (! $resultat) { echo "Erreur requete"; exit;} 
    while ($ligne=mysql_fetch_array($resultat))
    {
    echo '<tr>';
    echo '<td>'.$ligne["titre"].'</td>';
    echo '<td>'.$ligne["nomAuteur"].' '.$ligne["prenomAuteur"].'</td>';
    echo '<td>'.$ligne["libelleTypeAuteur"].'</td>';
    echo '<td>'.$ligne["anneeEdition"].'</td>';
    echo '<td><a href="#" OnClick="aproposde()">Consulter résumé</a></td>';
    echo '</tr>'."\n";
    }
    echo '</table>'."\n"; 
    mysql_free_result($resultat);
    mysql_close($connexion);
    }?>
     
    <form method="POST">
    <textarea name="auteur"></textarea>
    <input type='hidden' name='codeLivre' value='<?php echo $ligne["codeReference"]; ?>'/>
    <input type="submit" value="OK"/>
    </form>
    Ma requête fonctionne correctement. J'ai vérifié.
    la fonction aproposde() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script language="javascript">
    <!--
    function aproposde()
    {
    window.open("resume.php", "aproposde", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=500, height=500, left=300, top=50");
    }
    //-->
    </script>
    Et dans ma page resume.php, je tente juste pour le moment d'afficher la valeur récupérée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $codeLivre=$_POST['codeLivre'];
    echo 'Bienvenue sur cette page, ' .$codeLivre;
    ?>
    Mais ceci ne fonctionne toujours pas.

  8. #8
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    c'est normal que ton form n'ai pas d'action ?
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    @Eusebe : oui, t'as bien compris, le id_livre est un résultat d'une requête.

    @Chtipitou: il a pas d'action car le traitement se fait sur la même page (là ou il y a le formulaire) ,j'airais pu mettre une action pour que mon formulaire appelle lui-même.

  10. #10
    Membre actif Avatar de chtipitou
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 214
    Points
    214
    Par défaut
    et sur la page generee le code HTML est correct ? le echo est bon dans le form ?
    42
    there is no place like 127.0.0.1
    Mangez des http://www.smarty.net avec vos PHP web s'il vous plait
    var_dump retourne les informations structurées d'une variable, y compris son type et sa valeur. Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Arf, echo est bon que si je le place dans mon while. Je sais plus quoi faire pour recup mon identifiant du livre dans ma page resume.php.

  12. #12
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Il ne faut pas que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open("resume.php", "aproposde", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=500, height=500, left=300, top=50");
    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open("resume.php?codelivre=<?php echo $ligne["codeReference"]; ?>", "aproposde", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=500, height=500, left=300, top=50");
    Dans le premier cas, tu ne passes pas de paramètres à ta page...

    Et dans ce cas, dans ta page resume.php, tu peux y accéder par $_GET['codelivre'], et pas $_POST['codelivre'].

    Edit : je n'avais pas fait attention, c'est une fonction javascript appelée dans ton code. Si tu veux conserver cette structure, il faut que ta fonction prenne en paramètre le code du livre, et l'utilise dans la création du lien.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Merci, mais maintenant, rien ne se passe si on clic sur le lien. Avant, j'avais une fenêtre qui s'ouvrait.

  14. #14
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bon, on va commencer par éliminer le javascript...

    Si tu remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" OnClick="aproposde()">Consulter résumé</a>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="resume.php?codelivre=<?php echo $ligne["codeReference"]; ?>">Consulter résumé</a>
    Ca donne quoi ?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    J'étais en train de le tester :

    Notice: Undefined index: codeLivre in C:\Documents and Settings\bla\bla\bla\site\resume.php on line 8
    Bienvenue sur cette page,

    Et voilà ce qu'il y a dans l'adresse :

    http://127.0.0.1/site/resume.php?codelivre=%3C?php%20echo%20$ligne[

  16. #16
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Citation Envoyé par Nooby Voir le message
    J'étais en train de le tester :

    Notice: Undefined index: codeLivre in C:\Documents and Settings\bla\bla\bla\site\resume.php on line 8
    Bienvenue sur cette page,
    Et quelle est l'adresse ce cette page ?

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Je viens de re-tester echo dans la première page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $ligne["codeReference"];
    Il affiche bien l'identifiant de mon livre.

    Un problème de syntaxe dans l'écriture de href?
    Pour résumer, dans ma page généréee, j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $codeLivre=$_GET['codelivre'];
    echo 'Bienvenue sur cette page, ' .$codeLivre;

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Eusebe Voir le message
    Et quelle est l'adresse ce cette page ?
    http://127.0.0.1/site/resume.php?codelivre=%3C?php%20echo%20$ligne[

  19. #19
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Je n'avais pas fait attention que ton lien était déjà dans un echo

    Fais plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td><a href="resume.php?codelivre='.$ligne["codeReference"].'>Consulter résumé</a></td>';

  20. #20
    Membre averti

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 206
    Points : 319
    Points
    319
    Par défaut
    Salut, ton code PHP n'a pas été exécuté car ta page JavaScript ne passe pas par l'interpréteur PHP (tu peut configurer sa dans apache) donc du coup tu as le code PHP brut dans ton url :o hihi. Mais en fait sa sert a rien, je viens de regarder ton code que tu as mis au debut et en fait ton script ne marchera jamais comme sa :o car tu re utilise $ligne pour assigner une valeur a ton boutton input qui est caché mais ceci n'est pas dans une boucle, donc ou que tu clique tu aura toujours le meme résumé, c'est ta fonction aproposde() qui doit tout faire et ce dans ton while qui lit ta requête (t'aura pas besoin de mettre du PHP dans le JS en +) :
    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
     
    $resultat=mysql_query($sql) or die ("requète non executé");
    if (! $resultat) { echo "Erreur requete"; exit;} 
    while ($ligne=mysql_fetch_array($resultat))
    {
    echo '<tr>';
    echo '<td>'.$ligne["titre"].'</td>';
    echo '<td>'.$ligne["nomAuteur"].' '.$ligne["prenomAuteur"].'</td>';
    echo '<td>'.$ligne["libelleTypeAuteur"].'</td>';
    echo '<td>'.$ligne["anneeEdition"].'</td>';
     
    /*
     * C'est ici que tu dois mettre ton code de Reference, lors du clic
     */
    echo '<td><a href="#" OnClick="aproposde( \''.$ligne['codeReference'].'\' )">Consulter résumé</a></td>';
     
    echo '</tr>'."\n";
    }
    echo '</table>'."\n"; 
    mysql_free_result($resultat);
    mysql_close($connexion);
    }?>
    Et la fonction aproposde() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script language="javascript">
    <!--
    function aproposde( codeReference )
    {
    //Tu concatene ta variable a l'url ici
    window.open("resume.php?codeLivre="+codeReference, "aproposde", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=500, height=500, left=300, top=50");
    }
    //-->
    </script>
    Sa devrait mieux marcher

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  2. Réponses: 2
    Dernier message: 05/05/2008, 17h25
  3. [PHP-JS] Récupérer une variable JS dans une variable PHP
    Par Perceuse-Killer dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 15h34
  4. Réponses: 1
    Dernier message: 20/04/2007, 09h12
  5. [PHP-JS] mettre une variable javascript dans une variable php
    Par Mounr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2007, 09h09

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