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 une variable d'une page php vers une autre déjà chargée


Sujet :

Langage PHP

  1. #1
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut Passer une variable d'une page php vers une autre déjà chargée
    Bonjour,

    j'ai une page php (page1) dans laquelle j'ai une zone de texte et un bouton.La zone de texte doit contenir une date qui peut être remplie manuellement ou bien automatiquement par le biais d'un bouton (situé à coté de cette zone de texte).


    Le bouton m'ouvre une popup (page php que nous nommerons page2) dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
     
    require ("calendrier.php");
     
    echo calendar();
     
     
    ?>
    Cette page fait donc référence à une autre page php (page3) qui contient une fonction.


    La variable que je dois récupérer est dans cette page 3.

    Comment je pourrais passer la variable contenue dans la page 3 vers la page1 ? faut-il obligatoirement passer par la méthode "post" et donc par un formulaire ?

    Merci !

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Salut,
    tu peux utiliser les sessions
    http://fr2.php.net/manual/fr/ref.session.php

  3. #3
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    J'utilise déjà les sessions, mais je n'arrive pas à passer ma variable dans de la page 3 à la page 2 sachant que la variable de la page 3 est dans une fonction...

  4. #4
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Pourtant je pense que ça devrait marcher.
    Comment enregistres-tu ta variable dans ta fonction?
    Et comment la récupères-tu?

  5. #5
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    oui je pense aussi mais c'est justement la manière dont je la récupère qui ne va pas....j'ai déjà une variable de session qui me récupère le nom d'utilisateur mais par la méthode issue d'un "post".

    Le bouton de la Page1 me renvoit à la Page2 dont le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start();
    $User = $_SESSION['User_Name'];
     
    require ("calendrier.php");
    echo calendar();
    echo "<br />";
    echo "<center><input type='submit' name='Valider' value='Ok' /></center>";
    echo $_SESSION[$DateSelect];
    ?>
    le "echo" m'affiche bien la bonne valeur mais j'ai quand meme une erreur "indefined variable sur echo $_SESSION[$DateSelect];

  6. #6
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    Bon désolé pour le post précédent c'était "évident"...

    Par contre maintenant que j'ai récupéré ma variable sur la Page2, je dois la renvoyer sur la Page1 (qui est déjà "chargée") et remplir une zone de texte...tout en conservant les données d'autres zones de texte

    Je remets mon code à jour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start();
    $User = $_SESSION['User_Name'];
    $DateSelect="";
    require ("calendrier.php");
    echo calendar();
    echo "<br />";
    echo "<center><input type='submit' name='Valider' value='Ok' /></center>";
    //echo $_SESSION[$DateSelect];
    ?>
    le echo $_SESSION[$DateSelect]; me renvoit ma variable. Cette variable doit être passée à la page1 par le biais d'un bouton.

  7. #7
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    (qui est déjà "chargée")
    en fait, j'avais un peu zappé ceci et c'est pourtant tout le noeud du problème...
    du coup je te conseille plutot de passer par javascript...
    tu peux aller voir ce bout de code : http://julienbessiere.free.fr/codelibrary/?mid=11#53
    qui permet de passer une info à partir d'un popup vers sa fenêtre mère.

    Ensuite tu peux stocker la valeur reçu dans un champ cacher et utiliser enfin les sessions pour conserver la valeur.

  8. #8
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    En fait je pense que je vais sauvegarder toutes les variables du formulaire dans des variables de session, puis tout réinscrire ensuite dans les zones de texte a chaque fois que je fais appel au calendrier...mais je ne vois pas trop comment procéder....comment récupérer tous les champs du formulaire en variable de session ?

    je mets le code du formulaire uniquement pour pas que ce soit trop long...

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
     
    if( $envoye==0 || $erreur==1) {
     
    echo'<p align="center">';
    echo'   <table border="2" cellpadding="1" cellspacing="1">';
    echo"       <tr>";
    echo'	        <td width="800" height="100" align="middle">';
    echo'	            <font face="Times New Roman" size="6" color="#000000">';
    echo"	                <b>";
    echo"	                    <i>Gestion des postes en déplacement</i>";
    echo"       	        </b>";
    echo"	            </font>";
    echo"	        </td>";
    echo"       </tr>";
    echo"       <tr>";
    echo'	        <td width="800" height="100">';
    echo'    	        <font face="arial" size="3" color="#000000">Ici, vous pouvez saisir les postes qui partent en déplacement à lextérieur.</font>';
    echo"    	            <br />";
    echo"    	            <br />";
    echo'    	        <font face="arial" size="3" color="#000000"><b><u>Remarque :</b></u>&nbsp; Les champs marqués d&acute;un astérisque sont obligatoires !!</font>';
    echo" 	        </td>";
    echo"       </tr>";
    echo"</p>";
    echo"<tr>";
    echo"   <form action=\"\" method=\"post\">";
    echo"       <input type=\"hidden\" name=\"envoye\" value=\"1\" />";
    echo"           <table cellpadding=\"1\" cellspacing=\"1\" align=\"center\" border=\"0\" width=\"800\">";
    echo"               <tr>";
    echo"                   <td width=\"452\">";
    echo"                       <p>".$msg_erreur."</p>";
    echo"                   </td>";
    echo"               </tr>";
    echo"           </table>";
    echo"           <table align=\"center\" cellpadding=\"1\" cellspacing=\"1\" border=\"2\" width=\"800\" bordercolorDARK=\"black\" bordercolorLIGHT=\"black\" bgcolor=\"#FFFFFF\">";
    echo"               <tr>";
    echo"                   <td width=\"459\" colspan=\"2\">";
    echo"                       <p align=\"right\">&nbsp;</p>";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;(*)N° d'immo du poste : </p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">"; 
    //execution de la requete
    include('../Connect.php');
    $connect = odbc_connect(SERVEUR, NOM, PASS)or die("Echec de la connexion à la base");
    $SQL = "SELECT DISTINCT UC.NumImmoUC FROM UC,Deplacement WHERE UC.NumImmoUC Not in (SELECT Deplacement.NumImmoUC FROM Deplacement)";
    $result=@ odbc_do($connect,$SQL) or die("veuillez nous contacter !");
    echo"                       <select name='NumeroImmoUC'> ";
    echo "                          <option selected>Choisissez un poste...</option>";
    while($val=odbc_fetch_array($result)) {
    echo"                           <option>".$val['NumImmoUC']."</option>";
    }
    echo"                       </select>  "; 
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;(*)N° d'immo de l'écran : </p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    $SQL = "SELECT DISTINCT Ecran.NumImmoEcran FROM Ecran,Deplacement WHERE Ecran.NumImmoEcran Not in (SELECT Deplacement.NumImmoEcran FROM Deplacement)"; 
    $result=@ odbc_do($connect,$SQL) or die("veuillez nous contacter !");
    echo"                       <select name='NumeroImmoEcran'> ";
    echo "                          <option selected>Choisissez un écran...</option>";  
    while($val=odbc_fetch_array($result)) { 
    echo "                          <option>".$val['NumImmoEcran']."</option>";
    }
    echo"                       </select>  ";
    odbc_close($connect); 
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;(*)Destination (Client) : </p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <input type='text' name='Destination' value='".$Destination."' size=\"30 \" />";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;(*)Date de départ :</p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <input type='text' name='Depart' value='".$Depart."' size=\"30\" />&nbsp;&nbsp;<input type='submit' name='Calendrier' value='Calendrier'  onclick=\"javascript:popup('Calendrier/Date.php')\" style=\"background-color:'#3cb371'\" style=\"color:white; font-weight:bold\"onclick />";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;(*)Date de retour : </p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <input type='text' name='Retour' value='".$Retour."' size=\"30\" />&nbsp;&nbsp;<input type='button' name='Calendrier' value='Calendrier'  onclick=\"javascript:popup('Calendrier/Date.php')\" style=\"background-color:'#3cb371'\" style=\"color:white; font-weight:bold\"onclick />";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width='232'>";
    echo"                       <p align=\"right\">&nbsp;Nom de l'utilisateur:</p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <input type='text' name='NomUser' value='".$NomUser."' size=\"30\" />";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;Nom du responsable :</p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <select name='Responsable' value='".$NomResp."'>";
    echo"                           <option selected>Choisissez un responsable...</option>"; 
    echo"                           <option >Personne1</option>";
    echo"                           <option >Personne2</option>";
    echo"                           <option >Personne3</option>";
    echo"                           <option >Personne4</option>";
    echo"                       </select>";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr onmouseover=\"this.style.backgroundColor='#66CC66'\" onmouseout=\"this.style.backgroundColor='#C0C0FF'\">";
    echo"                   <td width=\"232\">";
    echo"                       <p align=\"right\">&nbsp;Commentaires/Matériel additionnel : </p>";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <textarea name='Commentaires' value='".$Commentaires."' rows=\"2\" cols=\"23\">Clavier, souris, cordons alimentation x2</textarea>";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr>";
    echo"                   <td width=\"232\">";
    echo"                       <br />";
    echo"                           <p align=\"center\">";
    echo"                               <input type='reset' name='Reset' value='Initialiser' />&nbsp;";
    echo"                           </p>";
    echo"                           <br />";
    echo"                   </td>";
    echo"                   <td width=\"227\">";
    echo"                       <br />";
    echo"                           <p align =\"center\">";
    echo"                               <input type='submit' name='Soumettre' value='Envoyer'>";
    echo"                           </p>";
    echo"                           <br />";
    echo"                   </td>";
    echo"               </tr>";
    echo"               <tr>";
    echo"                   <td align='center' width='459' height='18' colspan='2'>";
    echo"                       <p align='right'>&nbsp;";
    echo"                           <a href='mailto:'>";
    echo"                               <center>Signaler un problème</center>";
    echo"                           </a>";
    echo"                       </p>";
    echo"                   </td>";
    echo"               </tr>";
    echo"           </table>";
    echo"           <p>&nbsp;</p>";
    echo" </form>";
    echo"</tr>";
    Voila en fait je vérifie les données du formulaire et si elles ne sont pas correctes, il indique celle qui ne vont pas et réaffiche celles qui sont correctes...je pense donc que ce que je souhaite faire est possible dans mon cas. En résumé je voudrais valider le formulaire ce qui me permettrait d'incorporer la valeur de ma page2 (du calendrier).


    Merci beaucoup

  9. #9
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    comment récupérer tous les champs du formulaire en variable de session
    Si ton formulaire est soumis, je pense que tu peux faire simplement :
    à tester...

  10. #10
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    Oui ok ça c'est il me reste je pense plus qu'une chose à faire...Sur la page2 (la page du calendrier où je dois choisir une date) j'ai un bouton "ok" qui est censé valider cette date. En fait je souhaiterais que ce bouton "valide" mon formulaire de la page1...(j'en profiterais pour inscrire la valeur du calendrier ! )cela est-il possible ?

  11. #11
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    oui je pense que c'est possible en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.opener.document.getElementById('id_form').submit;
    ou quelque chose comme ça

  12. #12
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    C'est très bien je te remercie beaucoup !

    Il me reste un probleme. Pour l'instant ça fonctionne très bien dès lors que le champ est une zone de texte. Pas de probleme. Par contre lorsqu'il s'agit d'une liste déroulante là il me conserve pas le résultat que j'ai sélectionné.

    Je pense en connaitre la raison.Lorsque je réaffiche le formulaire dans mon code, les zones de liste déroulantes sont alimentés par une base de données. Je pense donc que la solution serait de ne pas réalimenter les zones de liste déroulantes mais j'ai beau chercher je ne trouve pas le moyen de bloquer ça.

  13. #13
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Est ce que tu mets un SELECTED dans l'option qui a été choisi au moment du rechargement?

  14. #14
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    Oui....en effet...je dois donc l'enlever ?

    voici le code du select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    echo"                       <select name='NumeroImmoUC'> ";
    echo "                          <option>Choisissez un poste...</option>";
    //if ($_SESSION['NumImmoUC']=="" || $_SESSION['NumImmoUC']=="Choisissez un poste..." ){ 
    while($val=odbc_fetch_array($result)) {
    echo"                           <option>".$val['NumImmoUC']."</option>";
    }
    //$_SESSION['NumImmoUC']=$val['NumImmoUC'];
    //}
    echo"                       </select>  ";

    Je pense qu'il faudrait que je récupère la valeur du select pour le mettre dans une variable de session du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "window.opener.document.getElementById('NumeroImmoUC').options[window.opener.document.getElementById('NumeroImmoUC').selectedIndex].text=$_SESSION['NumImmoUC']";
    Mais je vois pas comment faire j'arrive bien à récupérer la valeur sélectionnée en javascript mais pour la passer dans la variable de session $_SESSION['NumImmoUC'] là je bloque

  15. #15
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Oui....en effet...je dois donc l'enlever ?
    Non, c'est ça qui te permet de garder tes éléments sélectionnées d'une page sur l'autre. Mais je ne vois pas où tu le mets. Dans ta boucle while tu dois tester les valeurs. Quand elles correspondent tu ajoutes SELECTED dans ton tag OPTION pour qu'il soit sélectionné.


    passer dans la variable de session $_SESSION['NumImmoUC']
    Il faut que tu passes la valeurs via un POST ou un GET avant de la mettre dans ta session. Tu ne peux pas la mettre directement de javascript vers les $_SESSIONS.

  16. #16
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    Désolé pour le retard j'ai du m'absenter un moment...

    Alors pour remémorer un peu le problème... j'ai une page web dans laquelle il y a un formulaire. Pour remplir ce formulaire, je fais appel à une autre page php (en popup) qui me sert à sélectionner une date (en fait la page est un calendrier) qui doit lors d'un clic sur un bouton s'afficher dans un champ de ma page qui contient le formulaire. Jusque là nous avions réussi par le biais d'un "POST" sur la page calendrier. Donc j'ai bien ma date qui s'affiche dans le formulaire mais le problème qu'il me reste à résoudre est de sauvegarder toutes les valeurs du formulaire dans des variables de session car lorsque je fais un submit sur la page du calendrier, le formulaire se réinitialise

  17. #17
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Ce calendrier vous sert à renseigner un champ de votre formulaire. Si c'est un champ qui n'est pas modifiable par l'utilisateur, vous pouvez appliquer l'une de mes solutions qui vous évitera de passer par l'intermédiaire d'un popup.

    Dans un premier temps, vous insérer votre calendrier dans votre page, en le mettant entre un div :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id='calendrier'>
    <?php
           include "CalendrierGeneral.php4";
    ?>
    </div>
    Ensuite ajouter cette petite fonction javascript dans l'appel de la page qui aura pour conséquence de cacher le calendrier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type='text/javascript'>
         document.getElementById('calendrier').style.display = 'none';
    </script>
    Après dans le head de votre page, vous venez rajouter ces 2 fonctions Javascript, la première sert à afficher le calendrier.
    La seconde sert à renseigner la case du formulaire en fonction de ce qui a été cliqué sur le calendrier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function MontreMessage(pope)
    {
           if(document.getElementById(pope).style.display == "none")
    	document.getElementById(pope).style.display = "block";
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function gopage(jour,mois,annee)
    {
    	document.getElementById('ZoneDate').value =jour+"/"+mois+"/"+annee;
                 document.getElementById('calendrier').style.display = 'none'
    }
    Ensuite sur votre calendrier, (tout dépend comme en quoi il a été scripté), au lieu d'envoyer l'utilisateur quelques part ou autre, vous l'envoyer sur ce lien, qui correpond à la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gopage(Variable du jour, Variable du mois, Variable de l'année);
    Bon la fonction gopage est a modifié en fonction de ce que vous renvoie votre calendrier, s'il renvoit une date complète, vous n'avez pas besoin d'avoir 3 variable mais une seule.

    Et enfin sur votre formulaire vous rajouter la case qui va recevoir la date de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id='ZoneDate' type='text' name='Date'  value='' onFocus='MontreMessage("calendrier");' readonly>
    Voilà, il ne vous reste plus qu'à adapter en fonction de ce que vous avez de votre côté.

  18. #18
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    waaouu mais le probleme de l'include c'est que le calendrier prend beaucoup de place dans la colonne du tableau et ça fait pas vraiment présentable...(déjà que niveau graphisme c'est pas terrible ). La popup est plus proche de ce que je recherche question présentation, mais c'est vrai que votre solution semble pouvoir résoudre mon problème...

  19. #19
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Vous n'êtes pas forcé de le faire apparaître dans un tableau, vous pouvez très bien définir vous même les coordonnées d'apparition du calendrier (je ne sais plus comment se nomme la méthode) en intégrant ceci dans une feuille de style et en définissant le style du div contenant le calendrier par ce style Css.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #calendrier{
    position:absolute;
    top:265px;
    left:25%;
    width:50%;
    height:220px;
    }

  20. #20
    Mut
    Mut est déconnecté
    Membre averti Avatar de Mut
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2003
    Messages : 931
    Points : 307
    Points
    307
    Par défaut
    Cela reviendrait au même vu que ma page entière est sous forme d'un tableau...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/06/2013, 08h24
  2. Réponses: 6
    Dernier message: 10/05/2010, 22h53
  3. récuperer une variable d'un script php vers un javascript
    Par naazih dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/05/2008, 09h57
  4. Réponses: 3
    Dernier message: 25/02/2008, 09h14
  5. Réponses: 6
    Dernier message: 12/08/2007, 11h10

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