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 :

Probleme de récupération méthode $POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut Probleme de récupération méthode $POST
    Voilà, j'ai deux listes déroulantes, une qui recupère les noms de client d'une base de données, et l'autre qui récupère les prenoms des clients qui ont le nom sélectionné dans la première liste (en javascript pour ne pas recharger grâce a un objet "XhrObj").
    A la fin je veux récupérer les données pour les rentrer dans une table reservation. Le probleme est que lorsque je fais l'insertion dans la table au lieu de me rentrer le prenom sélectionné, il me rentre 'Array'.(alors que la première liste des nom avec la méthode $POST récupère bien le nom sélectionné).
    Merci de votre aide.

  2. #2
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    tu mets un peu de code pour qu'on puisse voir où ce trouve le probleme stp???

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut
    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
    <html>
    <form method="POST" action="addReservation.php">
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/javascript">
    	/**
    	 * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
    	 */
    	function sendData(param, page)
    	{
    		if(document.all)
    		{
    			//Internet Explorer
    			var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    		}//fin if
    		else
    		{
    		    //Mozilla
    			var XhrObj = new XMLHttpRequest();
    		}//fin else
     
    		//définition de l'endroit d'affichage:
    		var content = document.getElementById("contenu");
     
    		XhrObj.open("POST", page);
     
    		//Ok pour la page cible
    		XhrObj.onreadystatechange = function()
    		{
    			if (XhrObj.readyState == 4 && XhrObj.status == 200)
    				content.innerHTML = XhrObj.responseText ;
    		}
     
    		XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		XhrObj.send(param);
    	}//fin fonction SendData
     
        </script>
    </head>
    <body>
    <?php
     
    	// Paramètres de la Connexion à la base MYSQL
    	$user="XXXXXXXX";
    	$host="XXXXXX";
    	$password="XXXXXXXXXXX";
    	$database="XXXXXXXXXXXX";
     
       $i=0; // variable de test
       $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
     
      $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");
     
       mysql_select_db($database,$connexion);
     
       // Séléction de tous les enregistrements de la table Catégorie
     
       $rq="Select DISTINCT Nom from client;";
       $rq2="Select NSession from edtInitiation;";
       $result= mysql_query ($rq) or die ("Select impossible");
       $result2= mysql_query ($rq2) or die ("Select impossible");
       echo "<form method='POST' action='valid.php'>";?>  
     
       <select size="3" name="nsession" >
     
    <?php 
     
     
        while ($dt2=mysql_fetch_row($result2))
       {
        // Remplir la liste déroulante des catégorie	
    	echo "<option value=".($dt2[0]).">".($dt2[0])."</option>";
        if ($i2==0) { $j2=$dt2; $i2=1; } // garder la valeur du premier enregistrement
       }
    ?>    
       </select><br><br>
     
    	 <input type="text" name="jour" size="20" value="jour" maxlength="70"> <input type="text" name="observation" size="20" value="observation" maxlength="20"><br>
     
     
     
       <select size="3" name="nom" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
     
    <?php     
     
     
      while ($dt=mysql_fetch_row($result))
       {
        // Remplir la liste déroulante des catégorie	
    	echo "<option value=".($dt[0]).">".($dt[0])."</option>";
        if ($i==0) { $j=$dt; $i=1; } // garder la valeur du premier enregistrement
       }
     
       ?>    
       </select><br><br>
     
     
       <div id="contenu">
     <?php  
      // affichage des sous-catégorie appartenant à la première catégorie.
       echo "<select size='3' name='prenom'>";   
        $rq="Select Prenom from client where Nom=".$j.";";
        $result= mysql_query ($rq) or die ("Select impossible");
         // $i = initialise le variable i
        $i=0;
        while ($dt=mysql_fetch_row($result))
        { 
    	 echo "<option value=".($dt).">".($dt[0])."</option><br>";
        }    
    	echo "</select>";
       ?>  
     
       </div>
       <br>  
     
    </form>
    </body>
    </html>

    le fichier liresc.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
    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
     
    <html>
    <form method="POST" action="addReservation.php">
    <?php
     
    // test des POST emis
    if(isset($_POST['id']) && !empty($_POST['id']) ){
            $user="XXXXXXXX";
    	$host="XXXXXX";
    	$password="XXXXXXXXXXX";
    	$database="XXXXXXXXXXXX";
       $connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");   
       mysql_select_db($database,$connexion);
     
     
        $rq="Select Prenom from client where Nom='".$_POST['id']."';";
        $result= mysql_query ($rq) or die ("erer");
     
     
    	 // $i = initialise la variable i
        $i=0;
    	if (mysql_num_rows($result)>0)
    	{
    	  echo "<select size='1' name='prenom'>";
    	}
    	else
    	{
    	  echo ("Pas de sous catégories disponible");	
    	}
        while ($dt=mysql_fetch_row($result))
        { 	
    	 echo "<option value=".($dt).">".$dt[0]."</option><br>";
        }  
    	echo "<input type=".submit." value=".Envoyer." name=".envoyer.">";	
    	echo "</select>";
     
     
    }
     
    ?>
    </form>
    </html>
    le fichier addReservation.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
    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
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document</title>
    </head>
     
     
     
    <?php
     
    // On commence par récupérer les champs
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
    else      $prenom="";
     
     
    if(isset($_POST['nsession']))      $nsession=$_POST['nsession'];
    else      $nsession="";
     
    if(isset($_POST['jour']))      		$jour=$_POST['jour'];
    else      $jour="";
     
    if(isset($_POST['observation']))      $observation=$_POST['observation'];
    else      $observation="";
     
    // On vérifie si les champs sont vides
    if(empty($nom) OR empty($prenom) OR empty($nsession) OR empty($jour))
        {
        echo '<font color="red">Attention, tous les champs doivent être remplis sauf l observation!</font>';
        }
     
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else     
        {
     
    	include "Cybercommune.php"; 
     
    	$cybercommune = Cybercommune::getInstance();
     
    	$reservation = new Reservation($nom, $prenom, $nsession, $jour, $observation);
     
      	$cybercommune->addReservation($reservation);
     
     
     
     
        } 
    ?> 
     
     
    <body>
    </body>
    </html>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut
    Quelqu'un voit le problème?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Par défaut
    Au moment de l'insertion:

    INSERT INTO reservation VALUES( 'far','Array',1,'mardi','pas de pb');

    A la place de :
    INSERT INTO reservation VALUES( 'far','jer',1,'mardi','pas de pb');

    Le prenom n'est pas récupéré, j'ai Array à la place de jer

  6. #6
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    un peu de code...

    sinon c'est dans ta liste prenom
    ton value n'as pas d'index

    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
    
    
    <?php  
      // affichage des sous-catégorie appartenant à la première catégorie.
       echo "<select size='3' name='prenom'>";   
        $rq="Select Prenom from client where Nom=".$j.";";
        $result= mysql_query ($rq) or die ("Select impossible");
         // $i = initialise le variable i
        $i=0;
        while ($dt=mysql_fetch_row($result))
        { 
    	 echo "<option value=".($dt).">".($dt[0])."</option><br>";
        }    
    	echo "</select>";
       ?>
    Je me demandais pour quoi tu le mettait entre parenthèse aussi ce ne serait pas plutot un style comme ca?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     
     echo "<option value
    $dt['Prenom'].">".$dt['Prenom']."</option><br>";
    Mini remarque aussi, c'est une question de gout bien entendu mais au lieu d'utiliser des index, utilise les nom des champs directement sélectionner dans ta requete...quand il y en a juste 1..c'est 0 comme index mais quand tu vas en avoir 5-6 valeur de retour...prends les nom directement c'est plus clair pour une réutilisation futur du code

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

Discussions similaires

  1. Récupération des données envoyées par la méthode POST
    Par karamaster dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2015, 07h33
  2. jsp probleme avec la méthode post
    Par burnit4mosta dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/06/2011, 09h17
  3. [JSP] Méthode post entre 2 jsp
    Par SteelBox dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 13/03/2009, 01h20
  4. Réponses: 2
    Dernier message: 23/10/2007, 20h06
  5. [HTTP] Syntaxe méthode POST
    Par Gruik dans le forum Développement
    Réponses: 3
    Dernier message: 26/07/2003, 17h12

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