PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-06-2011 12:40:40

craya
Membre
Inscription : 01-06-2011
Messages : 6

ajouter liste déroulante dans un formulaire d'enregistrement

Bonjour,

J'ai un formulaire de saisie qui fonctionne,
Je voudrais ajouter en plus des listes déroulantes (actuellement j'ai des champs de saisie libre qui fonctionnent)
je voudrais avoir les deux par exemple saisir un auteur connu dans la liste déroulante et si il n'existe pas utiliser le champs libre.


Merci d'avance!

voici mon code:

<?php


 // On commence par récupérer les champs
if(isset($_POST['titre']))      $titre=$_POST['titre'];
else      $titre="";

if(isset($_POST['support']))      $support=$_POST['support'];
else      $support="";

if(isset($_POST['photographe']))      $photographe=$_POST['photographe'];
else      $photographe="";

if(isset($_POST['date']))      $date=$_POST['date'];
else      $date="";

if(isset($_POST['provenance']))      $provenance=$_POST['provenance'];
else      $provenance="";

if(isset($_POST['droitimage']))      $droitimage=$_POST['droitimage'];
else      $droitimage="";

if(isset($_POST['description']))      $description=$_POST['description'];
else      $description="";

if(isset($_POST['localisation']))      $localisation=$_POST['localisation'];
else      $localisation="";


if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['periode']))      $periode=$_POST['periode'];
else      $periode="";

if(!empty($_POST['lieu']))      $lieu=$_POST['lieu'];
else      $lieu="";

if(isset($_POST['mot']))      $mot=$_POST['mot'];
else      $mot="";
if(isset($_POST['idate']))      $idate=$_POST['idate'];
else      $idate="";

if(isset($_POST['idauteur']))      $idauteur=$_POST['idauteur'];
else      $idauteur="";

if(isset($_POST['idlieu']))      $idlieu=$_POST['idlieu'];
else      $idlieu="";

if(isset($_POST['idmot']))      $idmot=$_POST['idmot'];
else      $idmot="";

if(isset($_POST['idimage']))      $idimage=$_POST['idimage'];
else      $idimage="";
 
 require_once("connect.php");
  $bd=mysql_connect(SERVEUR,NOM,PASSE);
  mysql_select_db(BASE,$bd);
 
  // on regarde dans la table auteur si le nom existe déjà
 
 
$sql = "SELECT idauteur FROM auteur WHERE nom='$nom'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
$res= mysql_fetch_assoc($req);


if($res!=0)  // le nom  existe déjà, on affiche un message d'erreur
    { $idauteur = $res['idauteur'];
    echo '<font color="blue">Ce nom  existe déjà dans notre base.</font>';
    }

else  // Le nom n'existe pas, on insère d'abord les infos dans auteur
    {
    $sql = "INSERT INTO auteur (idauteur, nom) VALUES('','$nom')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on récupère l'idauteur qui vient d'être généré
    $idauteur = mysql_insert_id();
   
 
    }
   
     
      // on regarde dans la table dates si la periode existe déjà
 
 
$sql = "SELECT idate FROM dates WHERE periode='$periode'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res= mysql_fetch_assoc($req);


if($res!=0)  // la periode  existe déjà, on affiche un message d'erreur
    { $idate = $res['idate'];
    echo '<font color="blue">Cette periode  existe déjà dans notre base.</font>';
    }

else  // La periode n'existe pas, on insère d'abord les infos dans dates
    {
    $sql = "INSERT INTO dates (idate, periode) VALUES('','$periode')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
   
    // on récupère l'idate qui vient d'être généré
    $idate = mysql_insert_id();
   
   
    }

     // on regarde dans la table lieux si le lieu existe déjà
   
    $sql = "SELECT idlieu FROM lieux WHERE lieu='$lieu'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res= mysql_fetch_assoc($req);


if($res!=0)  // le lieu  existe déjà, on affiche un message d'erreur
    { $idlieu = $res['idlieu'];
    echo '<font color="blue">Ce lieu  existe déjà dans notre base.</font>';
    }

else  // Le lieu n'existe pas, on insère d'abord les infos dans lieux
    {
    $sql = "INSERT INTO lieux (idlieu, lieu) VALUES('','$lieu')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on récupère l'idlieu qui vient d'être généré
    $idlieu = mysql_insert_id();
   
 
    }
     
   
     
   
    // on regarde dans la table motcles si le mot existe déjà
   
      $sql = "SELECT idmot FROM motcles WHERE mot='$mot'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$res= mysql_fetch_assoc($req);

if($res!=0)  // le mot  existe déjà, on affiche un message d'erreur
    { $idmot = $res['idmot'];
    echo '<font color="blue">Ce mot  existe déjà dans notre base.</font>';
    }

else  // Le mot n'existe pas, on insère d'abord les infos dans motcles
    {
    $sql = "INSERT INTO motcles (idmot, mot) VALUES('','$mot')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on récupère l'idmot qui vient d'être généré
    $idmot = mysql_insert_id(); }
   
  {
  $sql = "INSERT INTO image (idimage, titre, support, photographe, date, provenance, droitimage, description, localisation, idauteur, idate, idlieu, idmot) VALUES('$idimage','$titre','$support','$photographe','$date','$provenance','$droitimage','$description','$localisation','$idauteur','$idate','$idlieu','$idmot')";
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    }

   

mysql_close($bd);  // on ferme la connexion  
 
?>

<div id="formulaire">

 <form action="saisie.php" method="post">
   

 

    <p>Titre:<br/>
    <input name="titre" size="22" value="" type="text"/>
   </p>  
   
   <p>Support:<br/>
    <input name="support" size="22" value="" type="text"/>
   </p>  
   
   <p>Photographe:<br/>
    <input name="photographe" size="22" value="" type="text"/>
   </p>  
   
   <p>Date:<br/>
    <input name="date" size="22" value="" type="text"/>
   </p>
   
    <p>Provenance:<br/>
    <input name="provenance" size="22" value="" type="text"/>
   </p>
   
    <p>Droits:<br/>
    <input name="droitimage" size="22" value="" type="text"/>
   </p>  
    <p>Description:<br/>
   <textarea name="description" rows="10" cols="50" ></textarea>
   </p>  
 
<p> Localisation dans la photothèque:<br/>
   <textarea name="localisation" rows="10" cols="50" ></textarea>
  </p>
      <p> Nom du photographe:</p>
        <input name="nom" size="22" value="" type="text"/>
   </p>
          <p> Periode :</p>
        <input name="periode" size="22" value="" type="text"/>
   </p>
   
    <p>  Lieu :</p>
        <input name="lieu" size="22" value="" type="text"/>
   </p>
         <p>  Mot-clé :</p>
        <input name="mot" size="22" value="" type="text"/>
   </p>
   
     <input name="Valider" value="Valider" type="submit"/>
   <input name="Effacer" value="Effacer" type="reset"/>
 
</form>

j'ai essayé de rajouté ça: mais sans succés la liste s'affiche mais c'est tout

// on regarde dans la table auteur si le nom existe déjà  
$sql = "SELECT idauteur FROM auteur WHERE nom='$nom'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());  
$res= mysql_fetch_assoc($req);

 $req=mysql_query("SELECT distinct idauteur,nom FROM auteur",$bd);

  /* création de la liste déroulante */
 
  echo "<select name='nom'>";
  echo "<option selected value='0'></option>\n";
  while ($res=mysql_fetch_assoc($req)){
   
      echo "<option value='".$res["idauteur"]."'>".$res["nom"]."</option>\n";
     
   
  };
  echo "</select>";


if($res!=0)  // le nom  existe déjà, on affiche un message d'erreur

Merci d'avance

Dernière modification par craya (14-06-2011 12:43:05)

Hors ligne

#2 17-06-2011 20:16:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : ajouter liste déroulante dans un formulaire d'enregistrement

Bonsoir,

Pour faire ce que tu souhaites, tu vas devoir te mettre au javascript.
Demande à Pierrot, il va se faire une joie de t'expliquer comment faire ca en Jquery.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 17-06-2011 22:19:17

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : ajouter liste déroulante dans un formulaire d'enregistrement

oui, possible wink
mais la 1ere chose à faire, c'est le ménage wink

en fait, j'ai pas bien compris ses besoins et encore moins sont code hmm
a++

Hors ligne

Pied de page des forums