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 :

Plusieurs submit dans le même formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bogsy15
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut Plusieurs submit dans le même formulaire
    Bonjour tout le monde,

    J'ai un formulaire qui permet de saisir des informations sur des clients. Ces informations seront ensuite enregistrées dans un bdd.

    Ce que je voudrais faire c'est :
    - tout d'abord saisir le numéro du dossier du patient
    - avec ce numéro je récupère les données de la bdd en fonction du n° de dossier
    - et faire afficher ces données dans les champs correspondants situés en dessous (ce qui évite de resaisir le nom, prenom, date de naissance ...)
    - et ensuite valider ce formulaire pour l'enregistrement dans la base de données

    Voici mon code du 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
    <form method="POST" action="index.php?page=Edition/test" name="formulaire">		
    	<table style="font-family:'Times New Roman', Times, serif;">	
    	<tr>
    		<td width="150"><span class="Style3">Nom</span></td>
    		<td><input type='text' name='box_nom' value="<? if (isset($nom)){echo $nom;} ?>"></td>
    	</tr>
    	<tr>
    		<td width="150"><span class="Style3">Prénom</span></td>
    		<td><input type='text' name='box_prenom' value="<? if (isset($prenom)){echo $prenom;} ?>"></td>
    	</tr>
    	<tr>
    	        <td width="150">Date de naissance*</td>
    	        <td><input type='text' name='box_naiss' value="<? if (isset($date_naiss)){echo $date_naiss;} ?>"></td>
    	</tr>
    	<tr><form method="POST">
    		<td width="150"><input type="submit" value="valider" name="valider"></td>
    		<td><input type='text' name='box_num_dossier' value="<? if (isset($num_dossier)){echo $num_dossier;} ?>"></td>
    	</tr></form>
    	</table>
    	<input type="submit" value="Enregistrer" name="envoyer"></center>
    </form>
    Voici le code du traitement :
    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
    if (isset($_POST['valider']))
    {
    	if(isset($_POST['box_num_dossier']))      
    		$num_dossier=$_POST['box_num_dossier'];
    	else      
    		$num_dossier="";
    	include("Include/connexion.php");	
     	$sql = "SELECT nom, prenom,date_naiss FROM patient WHERE num_dossier='$num_dossier'";
            $r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    	while($a=mysql_fetch_object($r))
            {
        	   $nom=$a->nom;
        	   $prenom=$a->prenom;
        	   $date_naiss=$a->date_naiss;
    	}
    	include("Include/deconnexion.php");
    }
    elseif(isset($_POST['envoyer']))
    {
            //ici je récupère la valeur des champs
            // ensute j'exécute la requête
    	include("Include/connexion.php");
    	$sql = "INSERT INTO patient (nom,prenom,date_naiss,num_dossier,identite_preana,date_preana,heure_preana,pharma_preana,option_preana,preana_autre) VALUES('$nom','$prenom','$date_naiss','$num_dossier','$identite_preana','$la_date','$heure','$pharma','$res_case','$zone_texte')";
    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
    	include("Include/deconnexion.php");
    }
    j'ai vu ceci sur la FAQ ici mais ça ne m'as pas beaucoup aidé.
    Pensez-vous que celà soit possible ? Avez-vous une idée ?
    Merci d'avance

  2. #2
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Hello,

    Tu ne peux pas avoir un formulaire dans un formulaire, c'est tout simplement pas possible....

    Tu dois avoir un premier formulaire (au dessus du premier) et le second ensuite ce qui donnerait quelquechose comme ceci :

    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
     
     
     
    	<table style="font-family:'Times New Roman', Times, serif;">
    	<tr><form method="POST">
    		<td width="150"><input type="submit" value="valider" name="valider"></td>
    		<td><input type='text' name='box_num_dossier' value="<? if (isset($num_dossier)){echo $num_dossier;} ?>"></td>
    	</tr></form>
    	<tr>
            <form method="POST" action="index.php?page=Edition/test" name="formulaire">	
    		<td width="150"><span class="Style3">Nom</span></td>
    		<td><input type='text' name='box_nom' value="<? if (isset($nom)){echo $nom;} ?>"></td>
    	</tr>
    	<tr>
    		<td width="150"><span class="Style3">Prénom</span></td>
    		<td><input type='text' name='box_prenom' value="<? if (isset($prenom)){echo $prenom;} ?>"></td>
    	</tr>
    	<tr>
    	        <td width="150">Date de naissance*</td>
    	        <td><input type='text' name='box_naiss' value="<? if (isset($date_naiss)){echo $date_naiss;} ?>"></td>
    	</tr>
     
    	</table>
    	<input type="submit" value="Enregistrer" name="envoyer"></center>
    </form>
    @+
    cadou

  3. #3
    Membre confirmé Avatar de bogsy15
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    En faisant deux formulaires l'un derrière l'autre, est-ce que je vais pouvoir :

    Avec le premier formulaire :
    - saisir le numéro du dossier du patient
    - avec ce numéro récupèrer les données de la bdd en fonction du n° de dossier
    - afficher ces données dans les champs correspondants situés dans le deuxième formulaire (ce qui évite de resaisir le nom, prenom, date de naissance ...)

    Avec le deuxième formulaire :
    - valider le formulaire en enregistrant dans la base de données les valeurs contenu dans les champs du deuxième formulaire (avec les valeurs reçues par le premier formulaire

    Ca devrait pouvoir se faire ?

    Sinon une autre petite question : peux-t-on passer des paramètre à la soumission du formulaire ?
    Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form method="POST" action="index.php?page=Edition/test&lenom=$nom">
    </form>

  4. #4
    Membre confirmé Avatar de bogsy15
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    J'ai fait ca pour le premier formulaire mais ca ne m'affiche pas les valeurs dans ls champs correspondants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    	if(isset($_GET['num']))
    	{
    		$num_dossier = $_GET['num'];
    	}
    ?>
    <table style="font-family:'Times New Roman', Times, serif;">	
    	<tr><form method="POST" action="index.php?page=Edition/test&num=$num_dossier">
    	      <td width="150"><input type='text' name='box_num_dossier' value="<? if (isset($num_dossier)){echo $num_dossier;} ?>" size='10' class="zonedetexte"></td>
                  <td><input type="submit" value="valider" name="valider"></td>
    	</tr></form>
    </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
    20
    21
    22
    23
    24
    25
    26
    if (isset($_POST['valider']))
    {
    	if(isset($_POST['box_num_dossier']))      
    		$num_dossier=$_POST['box_num_dossier'];
    	else      
    		$num_dossier="";
     
    	include("Include/connexion.php");	
     
     	$sql = "SELECT nom, prenom,date_naiss FROM patient WHERE num_dossier='$num_dossier'";
            $r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    	while($a=mysql_fetch_object($r))
            {
                  $nom=$a->nom;
                  $prenom=$a->prenom;
                  $date_naiss=$a->date_naiss;
     
            }
            // affiche les bonnes valeurs, dc pas de problème à la récupération
    	echo '<br />'.$nom;
    	echo '<br />'.$prenom;
    	echo '<br />'.$date_naiss;
     
    	include("Include/deconnexion.php");
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 50
    Par défaut
    Salut,

    Commençons petit, on peu imaginer une page du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    N° de patient    <input>       <bouton>"Charger les informations"</bouton>
    --------------------------------------------------------------------------
    Numéro de patient <input caché (type="hidden")>
    Nom <input>
    Prénom <input>
    Date naissance <input>
     
    <bouton>"Enregistrer"</bouton>
    Donc deux formulaires clairement séparés. Le premier "Charger..." appelle la page elle même, qui au chargement vérifie (en php bien entendu) si elle à récu un numéro de patien valide, si oui, elle fait une requête pour récupérer le reste des informations et crée quatre variables (n°, nom, prenom, date_naiss), remplies avec les valeur de la base.
    Ensuite on utilise ces valeurs pour remplir les input du deuxième formulaire, sans oublier un input caché qui contiendra le numéro d'abonné. Au moment de la validation du deuxième formulaire, on part sur une autre page qui va alors récupérer toutes les infos dont elle a besoin.

    Normallement ça marche...

  6. #6
    Membre confirmé Avatar de bogsy15
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    Je ne vois pas trop où tu veux en venir avec le input caché.
    Sinon de mon coté, en validant le premier formulaire (qui récupère le n° de dossier), celui ci effectue bien la requête qui récupère les autres informations.
    Par contre ces nouvelles informations ne s'affichent pas dans les champs correspondants du second formulaire.

  7. #7
    Membre confirmé Avatar de bogsy15
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    C'est bon j'ai réussi, merci.
    Le problème était au niveau du passage de paramètres.

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

Discussions similaires

  1. [PHP 5.0] Deux boutons "submit" dans un même formulaire
    Par cyrilherve dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2009, 14h08
  2. 2 submit dans le même formulaire
    Par amita dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/11/2007, 02h17
  3. plusieurs boutons submit dans le même formulaire
    Par rogerio dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2007, 13h53
  4. Plusieurs Beans dans le même formulaire
    Par AlienQueen dans le forum Struts 1
    Réponses: 2
    Dernier message: 19/11/2006, 19h21
  5. Deux submit dans un même formulaire
    Par hawaks dans le forum Langage
    Réponses: 3
    Dernier message: 21/04/2006, 15h12

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