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 :

Récupération de POST


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut Récupération de POST
    Bonjour.

    Dans mon formulaire j'ai un calendrier qui réaffiche la page quand on clique sur la date.
    Début de ma page
    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
    <?php
    require('connect.php');
    //récupération des valeurs du calendrier 
    if (isset($_GET['day']))  $jour=$_GET['day']; else $jour = "";  
    if (isset($_GET['month']))  $mois=$_GET['month']; else $mois = "";
    if (isset($_GET['year']))  $an=$_GET['year']; else $an = "";
    if (!empty($jour)){
    	if ($jour < 10){
    		$jour = "0$jour";
    	}
    	if ($mois < 10){
    		$mois = "0$mois";
    	}
    $madate = "$jour/$mois/$an";
    $madate1 ="$an-$mois-$jour";
    }
    //récupération des valeurs pour ajouter un film
    if(isset($_POST['titref']))      $titre=$_POST['titref'];
    	else $titre = "";
    if(isset($_POST['sortie']))      $sortie=$_POST['sortie'];
    	else $sortie = "";
    .....
    Début de mon formulaire :
    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
    <!--*********** FORMULAIRE DE SAISIE ***************-->
    <div style="margin-left:200px">
    <table border="0"><tr><td>
    <form name="ajout" method="post" action="index.php?page=ajout_film">
    <table border= "0" style="background-color:#0099FF;" cellpadding=0 cellspacing="0">
    <colgroup width='150'></colgroup>
    	<tr style="background-color:#0080c0" height=55>
    		<td colspan=2 align="center"><b>Ajouter un film</b><br><br>
    			<span style="font-size:11px"><font color="white">Vérifier que les acteurs, réalisateurs, genres et nationalités sont dans les listes avant la saisie du film</span></td>
    	</tr>
    	<tr class="trajout">
    		<td align="right">Titre : </td>
    		<td><input type="text" name="titref" value="<?php if (isset($titre)) { echo $titre; }?>" style="width:467px" /></td>
    	</tr>
    	<tr class="trajout">
    		<td align="right" valign="top">Date de sortie : <br><br> Année de réalisation :</td>
     
    		<td>
    		<table border = "0" cellpadding=0 cellspacing="0">
    			<tr>		
    				<td valign="top" width="160px"><input type="text" name="sortie1" value="<?php if (isset($madate)) { echo $madate; }?>"/><br><br>
    					<input type="text" name="annee" value=""/></td><td>
    <!-- calendrier -->	
     
    <div id="calendrier" align="center">
        <table border=1 style="background-color:#FFFFFF" cellpadding=0 cellspacing=0 width="152px" style="font-size:10px">
            <tr>
                <td><a href="index.php?page=ajout_film&month=<?php echo $monthnb - 1; ?>&year=<?php echo $year; ?>" style="text-decoration:none"><</a></span></td>
                <td colspan="5"><?php echo($month.' '.$year);  ?></th>
                <td><a href="index.php?page=ajout_film&month=<?php echo $monthnb + 1; ?>&year=<?php echo $year; ?>" style="text-decoration:none">></a></span></td>
            </tr>
            <?php
                echo('<tr>');
                for($i = 1; $i <= 7; $i++){
                    echo('<td>'.$daytab[$i].'</td>');
                }
                echo('</tr>');
                for($i = 1; $i <= count($calendar); $i++) {
                    echo('<tr>');
                    for($j = 1; $j <= 7 && $j-$z+1+(($i*7)-7) <= $nbdays; $j++){
                        if($j-$z+1+(($i*7)-7) == date("j") && $monthnb == date("n") && $year == date("Y")) echo '<td align="right"><a href="index.php?page=ajout_film&day='.$calendar[$i][$j].'&month='.$monthnb.'&year='.$year.'" style="text-decoration:none">'.$calendar[$i][$j].'</a></td>';
                        else echo '<td align="right"><a href="index.php?page=ajout_film&day='.$calendar[$i][$j].'&month='.$monthnb.'&year='.$year.'" style="text-decoration:none">'.$calendar[$i][$j].'</td>';
                    }
                    echo('</tr>');
                }
            ?>
        </table>
    </div>
    Quand j'entre un titre et que je clique sur une date du calendrier, j'ai bien la date affichée dans l'input text "sortie" mais je perds le titre.

    Est que quelqu'un a une idée?

    Merci.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    C'est normal, tu choisis la date de sortie via un lien que tu cliques (un GET) et donc le formulaire n'est pas "soumis" (submit) mais seulement les variables contenues dans ton lien du calendrier (une date donc).
    Tu mélanges en fait un formulaire classique post pour le titre du film et une variable GET pour le calendrier. D'ailleurs dans ton bout de code, il n'y a meme pas de bouton submit pour envoyer tes variables posts (le titre du film).

    Une solution serait de garder ton form avec le choix du titre de film et de faire un calendrier sous forme javascript. A chaque fois que tu cliques sur une date du calendrier, ca appelle une fonction javascript qui va remplir automatique un champ input type="texte" name="date_sortie" avec la date choisie.
    ensuite tu pourrais faire ton ajout avec un bouton submit. Tu pourrais alors récupérer a la fois la date et le titre du film.

    Je sais pas si j'ai été très clair alors je vais mettre un bout de code.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form method="post">
           <input type="text" name="titre">
           <!-- calendrier -->
           <a href="#" onclick="javascript:document.getElementById('date').value='14-08-2007';">ta date</a>;
           <input type="text" name="date" id="date">
           <input type="hidden" name="page" value="ajout_film">
    input type="sumit" name="valider">
    </form>
    Ensuite, tu récupères $_POST['date'] et $_POST['titre'] pour faire tes traitements.

    Evidemment, j'ai pris un exemple sur une seule date mais tu devrais pouvoir appliquer cette méthode à tout ton calendrier sans trop de problème.

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci pour les réponses.

    J'ai bien compris tout ça. J'avais construis mon calendrier avec des select qui appelaient une fonction javascript mais il ne restait pas sur le mois sélectionné, c'est pour ça que j'utilise un calendrier construit en php qui récupère la date via un lien.
    Pour le formulaire je n'ai pas mis le code mais j'ai bien un bouton submit.
    Est ce que je ne pourrais pas utiliser $_SESSION pour garder le titre du film?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    un session n'ira pas car des que tu choisiras la page, tu vas envoyer tes données via un get et le titre n'est pas passé dans l'url que tu cliques de ton calendrier. Et donc il ne sera pas transmis a la page cible et tu ne pourras le sauver en get.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    sinon j'ai un calendrir en javascript que je te mets en pièce jointe.
    Ensuite dans ton formulaire tu places:
    pour inclure le calendrier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <SCRIPT LANGUAGE="JavaScript" SRC="./CalendarPopup.js"></SCRIPT>

    et ensuite tu appeles ce calendrier via un lien de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form name="form_selects" method="post">	  
    <SCRIPT LANGUAGE="JavaScript">
      	  var cal = new CalendarPopup();
      	  </SCRIPT>
              <INPUT TYPE="text" NAME="date1" VALUE="" SIZE=12>
              <A HREF="#" onClick="cal.select(document.forms['form_selects'].date1,'anchor1','dd/MM/yyyy'); return false;" NAME="anchor1" ID="anchor1" border="0">calendrier</A></form>
    et tu obtiens un calendrier facile à utiliser et assez ergonomique pour les formulaires.

    Tiens moi au courant si tu as des soucis.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci.
    Je teste sur mon site et je reviens si problème.

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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