[RESOLU] Recupérer info formulaire liste déroulante

Eléphant du PHP | 75 Messages

06 juin 2014, 15:18

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>
   

ViPHP
ViPHP | 2577 Messages

06 juin 2014, 15:54

$result = $pdb->querry($sql);
while ($ligne = $result->fetch()) {
...
}

Eléphant du PHP | 75 Messages

06 juin 2014, 16:38

Un exemple concret est il possible svp. Ke doi je supprimer ou ajouter svp. Merci je debute

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2014, 16:41

//$requete= mysql_query($sql);
$requete= $pdo->query($sql);
// while($ligne = mysql_fetch_array($requete)){
while ($ligne = $requete->fetch()) {
Pas plus simple que cela. ;)

Eléphant du PHP | 75 Messages

06 juin 2014, 17:20

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
?>

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2014, 17:42

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.

Eléphant du PHP | 75 Messages

06 juin 2014, 17:47

lol je dois etre conne, mais en dessous de quoi ?

Je ne vois pas tro comment placer le tt :/

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2014, 18:32

En dessous de l'accolade fermante :
   }

Eléphant du PHP | 75 Messages

06 juin 2014, 19:07

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]

ViPHP
xTG
ViPHP | 7331 Messages

06 juin 2014, 19:45

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.

Eléphant du PHP | 75 Messages

07 juin 2014, 11:38

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>

ViPHP
xTG
ViPHP | 7331 Messages

07 juin 2014, 13:43

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

Eléphant du PHP | 75 Messages

07 juin 2014, 15:54

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 ? ....

ViPHP
xTG
ViPHP | 7331 Messages

07 juin 2014, 17:05

La connexion par exemple ?
Actives les erreurs PDO, sinon c'est comme demander à un aveugle de quelle couleur est son manteau...

Eléphant du PHP | 75 Messages

10 juin 2014, 11:24

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,
    ));
   
	}
  ?>