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 :

Formulaire avec auto-complétition


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Points : 53
    Points
    53
    Par défaut Formulaire avec auto-complétition
    Bonjour

    j'ai un souci avec un formulaire, celui ci doit se composé de quatre input txt et d'un bouton pour valider.
    Mon probleme vient du fait que pour le premier input j'ai une fonction pour completer automatiquement le nom depuis une base de données.. la fonction marche, par contre rien ne rentre dans ma base et je suis un peu perdu la..

    fonction pour la completer le mot :
    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
     
    <?php
    	if(isset($_POST['chef'])){
    		header('Content-type: text/html; charset=iso-8859-1');
    		// on inclut la connexion
    		mysql_connect('localhost', 'root', '');
    		mysql_select_db('');
     
    		// on fait la requête
    		$sql = "SELECT `medicament`
    				FROM `medicaments`
    				WHERE `medicament` LIKE '".$_POST['chef']."%'";
    		$req = mysql_query($sql);
     
    		$i = 0;
    		echo '<ul class="contacts">';
    		// on boucle sur tous les éléments
    		while($autoCompletion = mysql_fetch_assoc($req)){
    			echo '
    			<li class="contact"><div class="nom">'.$autoCompletion['medicament'].'</div>
    			
    			</li>';
    			// on s'arrête s’il y en a trop
    			if (++$i >= 5)
    				die('<li>...</li></ul>');
    		}
    		echo '</ul>';
    		die();
    	}
    ?>
    la fonction pour rentrer dans la table :


    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
     
    //récupération des valeurs des champs:
    	$id_patient = $_POST["id_patient"];
    	$medicament = $_POST['chef'];
    	$nombre_jours = addslashes($_POST['nombre_jours']);
    	$voie = $_POST['voie'];
    	$duree = $_POST['duree'];
    	$envoi_traitement = $_POST['envoi_traitement'];
     
      if ($envoi_traitement == yes){
       //création de la requête SQL:
      $sql = "INSERT  INTO traitement
       (id_patient, medicament, nombre_jours, voie, duree ) 
     
      VALUES ( '$id_patient' , '$medicament' , '$nombre_jours' , '$voie' , '$duree' ) " ;  
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
      }
    et enfin 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
     
    <form action="patient.php?id_patient=<?php echo $donnees['id_patient'] ;?>" method="post" >
    	<label for="chef">Medicament :<br> </label>
    	<input type="input" name="chef" id="chef" value="" />
    	<div class="update" id="chef_update"></div>
    <table>
      <tr>
        <td> Nombre par jours : <br><input type="text" name="nombre_jours"> </td>
    	 <td> Voie : <br><input type="text" name="voie"> </td>
        <td> Durée : <br><input type="text" name="duree"> </td> 
        <input type="hidden" value="yes" name="envoi_traitement">
        <td><input type="submit" value="Mettre a jour"> </td>
      </tr>    
    </table> 
    </form>
    <span id="chef"></span>
    <script type="text/javascript">
    new Ajax.Autocompleter ('chef',
    						'chef_update',
    						'autocompletion.php',
    						{
    							method: 'post',
    							paramName: 'chef',
    							afterUpdateElement: ac_return
    						});
    </script>
    a priori je dirais que ca merde dans le formulaire, mais je vois pas ou.. si quelqu'un avait une idée..

    merci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Points : 53
    Points
    53
    Par défaut
    bon en fait je viens de comprendre

    j'envois deux fois la meme variable ( chef) et du coup il s'arrette au premier ( la fonction pour completer le mot) donc du coup il ne rentre pas en base j'ai donc fait l'inverse :

    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
     
    <?php 
      //connection au serveur
      //PRESCRIPTION
      $cnx = mysql_connect("localhost", "root", "");
      $db  = mysql_select_db("");
     
     
      //récupération des valeurs des champs:
    	$id_patient = $_POST["id_patient"];
    	$medicament = $_POST['chef'];
    	$nombre_jours = addslashes($_POST['nombre_jours']);
    	$voie = $_POST['voie'];
    	$duree = $_POST['duree'];
    	$envoi_traitement = $_POST['envoi_traitement'];
     
      if ($envoi_traitement == yes){
       //création de la requête SQL:
      $sql = "INSERT  INTO traitement
       (id_patient, medicament, nombre_jours, voie, duree ) 
                                   
      VALUES ( '$id_patient' , '$medicament' , '$nombre_jours' , '$voie' , '$duree' ) " ;  
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
      }
    ?>
     
    <?php
    	if(isset($_POST['chef'])){
    		header('Content-type: text/html; charset=iso-8859-1');
    		// on inclut la connexion
    		mysql_connect('localhost', 'root', '');
    		mysql_select_db('');
     
    		// on fait la requête
    		$sql = "SELECT `medicament`
    				FROM `medicaments`
    				WHERE `medicament` LIKE '".$_POST['chef']."%'";
    		$req = mysql_query($sql);
     
    		$i = 0;
    		echo '<ul class="contacts">';
    		// on boucle sur tous les éléments
    		while($autoCompletion = mysql_fetch_assoc($req)){
    			echo '
    			<li class="contact"><div class="nom">'.$autoCompletion['medicament'].'</div>
    			
    			</li>';
    			// on s'arrête s’il y en a trop
    			if (++$i >= 5)
    				die('<li>...</li></ul>');
    		}
    		echo '</ul>';
    		die();
    	}
    ?>
    et la ca rentre bien dans la base , mais du coup j'obtiens une erreur du a header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by
    la ligne d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	header('Content-type: text/html; charset=iso-8859-1');

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Points : 53
    Points
    53
    Par défaut
    en virant la ligne header, ca fonctionne, tout rentre dans la base, mais du coup il stop le script a la fonction pour completer mes mots, du coup je suis bien sur la bonne page, mais elle est blanche..

    Y'a t'il un autre moyen pour sauter le script ?

    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 265
    Points : 53
    Points
    53
    Par défaut
    bon en fait c'etait tout con :

    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
     
    <?php 
      //connection au serveur
      //PRESCRIPTION
      $cnx = mysql_connect("localhost", "patatesa_kanel", "michael");
      $db  = mysql_select_db("patatesa_medecine");
     
      if ($envoi_traitement == yes){
      //récupération des valeurs des champs:
    	$id_patient = $_POST["id_patient"];
    	$medicament = $_POST['chef'];
    	$nombre_jours = addslashes($_POST['nombre_jours']);
    	$voie = $_POST['voie'];
    	$duree = $_POST['duree'];
    	$envoi_traitement = $_POST['envoi_traitement'];
     
     
       //création de la requête SQL:
      $sql = "INSERT  INTO traitement
       (id_patient, medicament, nombre_jours, voie, duree ) 
                                   
      VALUES ( '$id_patient' , '$medicament' , '$nombre_jours' , '$voie' , '$duree' ) " ;  
      //exécution de la requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
     
      }
    ?>
    il suffisait de mettre la condition en haut et comme cela ca fonctionne, je retombe bien sur la bonne page, le script continue normalement et ca n'entre qu'une fois dans la base.

    ca fait plaisir pour une fois que je me repond a moi meme

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

Discussions similaires

  1. [AC-2003] Un formulaire avec seulement Un numéro Auto et un champs Date
    Par adlinformatik dans le forum Access
    Réponses: 6
    Dernier message: 02/07/2015, 00h16
  2. [AJAX] Remplissage auto d'un formulaire avec jQuery et AJAX
    Par malaka44 dans le forum jQuery
    Réponses: 1
    Dernier message: 07/11/2014, 20h52
  3. formulaire avec fermeture auto
    Par Renardo dans le forum Access
    Réponses: 3
    Dernier message: 04/09/2006, 21h20
  4. Réponses: 10
    Dernier message: 10/06/2004, 17h20
  5. Gestion de formulaire avec xml et sans serveur ?
    Par meliane dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/05/2004, 20h57

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