Page 1 sur 3

Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 15:18
par cindy381
Bonjour voici mon peti souci du jour ( je débute ... comme vous vous en doutez :).
J'ai appris plus au moin a faire avec l'ancienne façon de se co à la BDD et maintenant j'essai de m'adapter a PDO
Je pense avoir tous remis au gout du jour, cependant je bloque sur les liste déroulante cette parti exactement, comment faire pour mettre cette parti au gout du jour svp,
 <?php $req_dep = mysql_query("select * from departements order by nom");?>
            <label for="departement">Departement </label><br/>
            <select class="select_post" name="departement" id="age" required>
            <?php while($dep = mysql_fetch_array($req_dep)){?>
				<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
			<?php }?>
            </select><br/><br/><br/>
            <?php $req_type = mysql_query("select * from type_loisir order by type");?>
	        <label for="departement">Sortie</label><br/><select class="select_post" name="type" id="age" required>
	         <?php while($res_type = mysql_fetch_array($req_type)){?>
				<option value="<?php echo $res_type['id_type_loisir']; ?>"><?php echo $res_type['type'];?></option>
			<?php }?>
			</select>


//////////////////////////////////////////////////////////////////////
La normalement c'est bon je pense en tt cas

Mon code
 
      <?php include("include/header.php");?>

   
    
    <div class="container">
    <?php
	
	if(!empty($_POST))
	{
  extract($_POST);
  $valid = true;
  
  //Verification titre
  if(empty($title))
  {
    $valid = false;
    $erreurtitle = 'Renseigner un nom de sortie';
  }
  
   //Verification ville
  if(empty($city))
  {
    $valid = false;
    $erreurcity = 'Renseigner une ville';
  }
  
   //Verification code postal
  if(empty($postcode))
  {
    $valid = false;
    $erreurpostcode = 'Renseigner un code postal';
  }
  
   //Verification sous-titre
  if(empty($soustitre))
  {
    $valid = false;
    $erreursoustitre = 'Votre sortie en quelques mots';
  }
  
  
   //Verification description
  if(empty($description))
  {
    $valid = false;
    $erreurdescription = 'Le detail de votre sortie';
  }

	 //Verification description
  if(empty($adresse_email))
  {
    $valid = false;
    $erreuradresse_email = 'verifier';
  }

 //Verification description
  if(empty($website))
  {
    $valid = false;
    $erreurwebsite = 'lien url';
  }


try
{
$bdd = new PDO('mysql:host=cl1-sql8;dbname=lasortie1','lasortie1','CY080938');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}



  $req = $bdd->prepare('INSERT INTO loisirs (id_loisirs, id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price, valide) 
  
  VALUES (:id_loisirs, :id_departements, :id_type_loisirs,:photo, :titre, :sous_titre, :date_debut_sortie, :date_fin_sortie, :description, :phone, :email, :website, :street, :postcode, :city,:price, :valide)');
    
   }
  ?>
    
    <div class="container">
	<div class="row">
    <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
 
  	<form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
    
      
    
    
     <!-- titre de la sortie -->
     <label for="title">titre :</label>
     <input class="form-control" type="text" name="title" value="<?php if(isset($title)) echo $title;?>" />
     <div class="error"><?php if(isset($erreurtitle)) echo $erreurtitle;?></div>
     
      <!-- titre de la sortie -->
     <label for="adresse_email">email :</label>
     <input class="form-control" type="text" name="adresse_email" value="<?php if(isset($adresse_email)) echo $adresse_email;?>" />
     <div class="error"><?php if(isset($erreuradresse_email)) echo $erreuradresse_email;?></div>
     
     
      <!-- Ville de la sortie -->
      <label>Ville *</label>
      <input class="form-control" name="city" value="<?php if(isset($nom)) echo $city;?>" type="text" id="nom"/>
      <div class="error"><?php if(isset($erreurcity)) echo $erreurcity;?></div>
     
      <!-- Code postal de la sortie -->
      <label>Code postal *</label>
       <input class="form-control" name="postcode" value="<?php if(isset($postcode)) echo $postcode;?>" type="text" maxlength="5" />
      <div class="error"><?php if(isset($erreurpostcode)) echo $erreurpostcode;?></div>
      
       <!-- Sous-titre de la sortie -->
      <label>Sous titre*</label>
      <input class="form-control" name="sous-titre" value="<?php if(isset($soustitre)) echo $soustitre;?>" type="text" />
      <div class="error"><?php if(isset($erreursoustitre)) echo $erreursoustitre;?></div>
      
      
      <!-- Sous-titre de la sortie -->
      <label>website</label>
      <input class="form-control" name="website" value="<?php if(isset($soustitre)) echo $website;?>" type="text" />
      <div class="error"><?php if(isset($erreurwebsite)) echo $erreurwebsite;?></div>
      
       <!-- Description de la sortie -->
      <label>Detail de votre sortie</label>
       <textarea class="form-control" name="description" value="<?php if(isset($description)) echo $description;?>" type="text" /></textarea>
      <div class="error"><?php if(isset($erreurdescription)) echo $erreurdescription;?></div>
    
    	
        
      <p>Start <input class="form-control" id="date_debut_sortie"  name="date_debut_sortie" type="text">
      
      End <input class="form-control" id="date_fin_sortie" name="date_fin_sortie" type="text"></p>
<script type="text/javascript">// <![CDATA[
jQuery(function(){
  jQuery('#date_debut_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        maxDate:jQuery('#date_fin_sortie').val()?jQuery('#date_fin_sortie').val():false
      })
    },
    timepicker:true
  });
  jQuery('#date_fin_sortie').datetimepicker({
    format:'d.m.Y H:i',
    onShow:function( ct ){
      this.setOptions({
        minDate:jQuery('#date_debut_sortie').val()?jQuery('#date_debut_sortie').val():false
      })
    },
    timepicker:true
  });
});
// ]]></script>

	  <label>Télephone</label>
      <input class="form-control"  name="phone" type="tel" id="nom" pattern="^\+?\s*(\d+\s?){8,}$" onKeyUp="verif_integer(this)" />
            
	  <label>Photo</label>
      <input  name="photo" type="file">
      
        
    
    <input class="btn-u" type="submit" value="ENVOYER"> 
    </form>
    </div>
   

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 15:54
par Mazarini
$result = $pdb->querry($sql);
while ($ligne = $result->fetch()) {
...
}

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 16:38
par cindy381
Un exemple concret est il possible svp. Ke doi je supprimer ou ajouter svp. Merci je debute

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 16:41
par xTG
//$requete= mysql_query($sql);
$requete= $pdo->query($sql);
// while($ligne = mysql_fetch_array($requete)){
while ($ligne = $requete->fetch()) {
Pas plus simple que cela. ;)

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 17:20
par cindy381
il fo pas se moquer svp mais ca coince tjr après vos conseil, voilà ce que j'ai fait
//<?php ********blablabla********

  $req = $bdd->prepare('INSERT INTO loisirs (id_loisirs, id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price, valide) 
  
  VALUES (:id_loisirs, :id_departements, :id_type_loisirs,:photo, :titre, :sous_titre, :date_debut_sortie, :date_fin_sortie, :description, :phone, :email, :website, :street, :postcode, :city,:price, :valide)');
    
	 $req_dep = $pdo->query("select * from departements order by nom");
	
   }
  ?>
    <?php
    <div class="container">
	<div class="row">
    <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">
 
  	<form  action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">
    
      

          
            <label for="departement">Departement </label><br/>
            <select class="select_post" name="departement" id="age" required>
            <?php while($dep = $req_dep->fetch($req_dep)){?>
				<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
			<?php }?>
            </select>
//************blabla
?>

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 17:42
par xTG
Après ton query() tu as une accolade fermante } qui montre que ta requête se trouve dans un if.
Et donc au mauvais endroit, il faut la placer en dessous.

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 17:47
par cindy381
lol je dois etre conne, mais en dessous de quoi ?

Je ne vois pas tro comment placer le tt :/

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 18:32
par xTG
En dessous de l'accolade fermante :
   }

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 19:07
par cindy381
J'ai fait comme vous m'avez dit mais j'ai un message d'erreur comment ça se fait svp:
Fatal error: Call to a member function query() on a non-object in /home/users6/l/lasortie/www/mon_profil_client.php on line 124


Et la ligne 124 j'ai <?php $req_dep = $bdd->query("select * from departements order by nom"); ?>




<?php


$req_dep = $bdd->query("select * from departements order by nom"); ?>
<label for="departement">Departement </label><br/>
<select class="select_post" name="departement" id="age" required>
<?php while($dep = $req_dep->fetch($req_dep)){?>
<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
<?php }?>
</select>


<div class="row">
<div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2">

<form action="mon_profil_client.php" method="post" enctype="multipart/form-data" onSubmit="return(VerifForm(this))">




<label for="departement">Departement </label><br/>
<select class="select_post" name="departement" id="age" required>
<?php while($dep = $req_dep->fetch($req_dep)){?>
<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
<?php }?>
</select>


<!-- titre de la sortie -->
<label for="title">titre :</label>
<input class="form-control" type="text" name="title" value="<?php if(isset($title)) echo $title;?>" />
<div class="error"><?php if(isset($erreurtitle)) echo $erreurtitle;?></div>

//*****************

?>
[/php]

Re: Recupérer info formulaire liste déroulante

Posté : 06 juin 2014, 19:45
par xTG
La variable $bdd ne doit pas être initialisée.
Dans ton code tu as initialisé une connexion à la base de données mais elle est aussi dans un if, et donc non exécuté dans ce cas là.
try
{
$bdd = new PDO('mysql:host=cl1-sql8;dbname=lasortie1','lasortie1','CY080938');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
Il faut que ce code soit exécuté tout le temps et non une fois que la condition dans laquelle il se trouve est valide si tu veux exécuter des requêtes SQL en dehors de la condition.

Re: Recupérer info formulaire liste déroulante

Posté : 07 juin 2014, 11:38
par cindy381
bon voilà a l'air de marcher mais je n'ai pas la liste des départementd qui s'affiche avec mon echo pourtant avec l'ancienne syntaxe ca marché bien, ai je encore une erreur ?
 <?php  $req_dep = $bdd->query("select * from departements order by nom"); ?>
            <label for="departement">Departement </label><br/>
            <select class="form-control" name="departement" id="departements" required>
            <?php while($dep = $req_dep->fetch($req_dep)){?>
				<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
			<?php }?>
            </select>

Re: Recupérer info formulaire liste déroulante

Posté : 07 juin 2014, 13:43
par xTG
A mon avis la requête ne doit pas s'exécuter correctement.
Actives la gestion des erreurs de PDO :
http://fr2.php.net/manual/fr/pdo.error-handling.php

Re: Recupérer info formulaire liste déroulante

Posté : 07 juin 2014, 15:54
par cindy381
Me revoilà veuillez bien m'excuser de mon incompétence mais ... l'ancienne version marche bien est la requête est la même
Ancienne version:
<?php $req_dep = mysql_query("select * from departements order by nom");?>
            <label for="departement">Departement </label><br/>
            <select class="select_post" name="departement" id="age" required>
            <?php while($dep = mysql_fetch_array($req_dep)){?>
				<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
			<?php }?>

Nouvelle version ( le problème c'est que la liste des département ne s'affiches pas )
<?php  $req_dep = $bdd->query("select * from departements order by nom"); ?>
            <label for="departement">Departement </label><br/>
            <select class="form-control" name="departement" id="departement" required>
            <?php while($dep = $req_dep->fetch($req_dep)){?>
				<option value="<?php echo $dep['departement_id']; ?>"><?php echo $dep['nom'];?></option>
			<?php }?>
            </select>

Quel est donc le problème ? ....

Re: Recupérer info formulaire liste déroulante

Posté : 07 juin 2014, 17:05
par xTG
La connexion par exemple ?
Actives les erreurs PDO, sinon c'est comme demander à un aveugle de quelle couleur est son manteau...

Re: Recupérer info formulaire liste déroulante

Posté : 10 juin 2014, 11:24
par cindy381
Salut bon c'est bon j'ai les infos de mes listes déroulantes , le formulaire par bien mais je ne reçois rien du tout en base de donées ....... comment ça se fait svp.....
Pas d'erreur après l'envoi

   <?php include("include/header.php");?>
 
    <div class="container">
    <?php
	
	if(!empty($_POST))
	{
  extract($_POST);
  $valid = true;
  
  //Verification titre
  if(empty($title))
  {
    $valid = false;
    $erreurtitle = 'Renseigner un nom de sortie';
  }
  
   //Verification ville
  if(empty($city))
  {
    $valid = false;
    $erreurcity = 'Renseigner une ville';
  }
  
   //Verification code postal
  if(empty($postcode))
  {
    $valid = false;
    $erreurpostcode = 'Renseigner un code postal';
  }
  
   //Verification sous-titre
  if(empty($sous_titre))
  {
    $valid = false;
    $erreursous_titre = 'Votre sortie en quelques mots';
  }
  
  
   //Verification description
  if(empty($description))
  {
    $valid = false;
    $erreurdescription = 'Le detail de votre sortie';
  }

	 //Verification description
  if(empty($adresse_email))
  {
    $valid = false;
    $erreuradresse_email = 'verifier';
  }

 //Verification description
  if(empty($website))
  {
    $valid = false;
    $erreurwebsite = 'lien url';
  }


  $req = $bdd->prepare('INSERT INTO loisirs (id_loisirs, id_departements, id_type_loisirs, photo, titre, sous_titre, date_debut_sortie, date_fin_sortie, description, phone, email, website, street, postcode, city, price, valide) 
  
  VALUES (:id_loisirs, :id_departements, :id_type_loisirs, :photo, :titre, :sous_titre, :date_debut_sortie, :date_fin_sortie, :description, :phone, :email, :website, :street, :postcode, :city, :price, :valide)');
   
   
   
      $req->execute(array(
      'id_loisirs'=>$id_loisirs,
      'id_departements'=>$id_departements,
	  'id_type_loisirs'=>$id_type_loisirs,
	  'photo'=>$photo,
	  'titre'=>$titre,
	  'sous_titre'=>$sous_titre,
	  'date_debut_sortie'=>$date_debut_sortie,
	  'date_fin_sortie'=>$date_fin_sortie,
	  'description'=>$description,
	  'phone'=>$phone,
	  'email'=>$email,
	  'website'=>$website,
	  'street'=>$street,
	  'postcode'=>$postcode,
	  'city'=>$scity,
	  'price'=>$price,
	  'valide'=>$valide,
    ));
   
	}
  ?>