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 :

2 boutons pour un même formulaire ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Points : 65
    Points
    65
    Par défaut 2 boutons pour un même formulaire ?
    Bonjour,

    Mon application permet à l'utilisateur d'effectuer une recherche.
    Cette recherche donne des résultats
    Et pour chaque résultats on peut soit modifier soit supprimer le résultat associé puisqu'il y a deux boutons pour chaque résultat.
    J'ai donc fait un formulaire pour chaque résultat et du coup il y a deux boutons différents pour un seul formulaire, sauf qu'évidemment ça ne doit pas avoir le même traitement.
    Est ce vraiment possible et si non, quelle est l'autre solution ?

    Merci !!

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    <?php
    // Connexion
    $lien=mysql_connect("localhost","root","");
    mysql_select_db("complaint_applet",$lien);
    //Test connexion
    if ($lien==0)
    {
    	printf("Error of connexion with the server");
    }
    $CompName=$_POST['CompName'];
    $CompNb1 =$_POST['CompNb1'];
    $CompNb2 =$_POST['CompNb2'];
    $Date1=$_POST['date1'];
    $Date2=$_POST['date2'];
    $Natco=$_POST['natco'];
    $Los=$_POST['los'];
    $Status=$_POST['status'];
    $ProblemType=$_POST['problemType'];
    
    if( $CompName==null ) $CompName = '%';
    if( $CompNb1 ==null) $CompNb1 = '%';
    if( $CompNb2 == null) $CompNb2 = '%';
    if( $Natco==null ) $Natco = '%';
    if( $Los==null ) $Los = '%';
    if( $Status==null ) $Status = '%';
    if( $ProblemType==null ) $ProblemType = '%';
    
    //Request
    $request="SELECT * FROM complaint
    		WHERE Complainant_name LIKE '%$CompName%'
    		AND Complaint_year LIKE '$CompNb1'
    		AND Natco LIKE '$Natco'
    		AND LOS LIKE '$Los'
    		AND Status LIKE '$Status'
    		AND 'Problem_type' LIKE '$ProblemType'
    		AND Complaint_number LIKE '$CompNb2'";
    		
    if( $Date1 != null && $Date2 != null)
    {
    	$request .= " AND Complaint_reception_date BETWEEN '$Date1' AND '$Date2'";
    }
      
    $result=mysql_query($request);
    $nb=mysql_num_rows($result);
    if ($nb==null)
    {
    	echo"No result corresponds to your research";
    }
    else
    {
    	$i=0;
    	while($i<$nb)
    	{
    			$find=mysql_fetch_array($result);
    			$NbComplaint=$find[0];
    			$Reception_date=$find[1];
    			$Recording_date=$find[2];
    			$Recording_time=$find[3];
    			$Recorded_by=$find[4];
    			$Description=$find[5];
    			$NbIncident=$find[6];
    			$Natco=$find[7];
    			$LOS=$find[8];
    			$Status=$find[9];
    			$LSCD=$find[10];
    			$LCD=$find[11];
    			$LCT=$find[12];
    			$LCB=$find[13];
    			$Complainant_name=$find[14];
    			$CPSD=$find[15];
    			$CPST=$find[16];
    			$R_comments=$find[17];
    			$Problem_type=$find[18];
    			$CA_P=$find[19];
    			$CA_D=$find[20];
    			$CD=$find[21];
    			$CT=$find[22];
    			$Del=$find[23];
    			$Complaint_year=$find[24];
    			$i++;			
    		
    			
    		echo"
    		<table width=100%>
    		<form method=post action=Modify.php>
    			<tr>
    				<td width=63%>Incident/Request number<b> $NbIncident </b>taken delivery of the <b>$Reception_date</b></td>
    				<td></td>
    				<td>
    				<input type='hidden' name=NbComplaint value='$NbComplaint'>
    				<input type='hidden' name=Complaint_year value='$Complaint_year'>
    				<input type='hidden' name=Reception_date value='$Reception_date'>
    				<input type='hidden' name=Recording_date value='$Recording_date'>
    				<input type='hidden' name=Recording_time value='$Recording_time'>
    				<input type='hidden' name=Recorded_by value='$Recorded_by'>
    				<input type='hidden' name=Description value='$find[5]'>
    				<input type='hidden' name=NbIncident value='$NbIncident'>
    				<input type='hidden' name=Natco value='$Natco'>
    				<input type='hidden' name=LOS value='$LOS'>
    				<input type='hidden' name=Status value='$Status'>
    				<input type='hidden' name=LSCD value='$LSCD'>
    				<input type='hidden' name=LCD value='$LCD'>
    				<input type='hidden' name=LCT value='$LCT'>
    				<input type='hidden' name=LCB value='$LCB'>
    				<input type='hidden' name=Complainant_name value='$Complainant_name'>
    				<input type='hidden' name=CPSD value='$CPSD'>
    				<input type='hidden' name=CPST value='$CPST'>
    				<input type='hidden' name=R_comments value='$R_comments'>
    				<input type='hidden' name=Problem_type value='$Problem_type'>
    				<input type='hidden' name=CA_P value='$CA_P'>
    				<input type='hidden' name=CA_D value='$CA_D'>
    				<input type='hidden' name=CD value='$CD'>
    				<input type='hidden' name=CT value='$CT'>
    				<input type='hidden' name=Del value='$Del'>
    				
    				<input type=image src=img/modify.bmp>
    				<input type=image src=img/delete.bmp></td>			</tr>
    			<tr>
    				<td>Recorded to <b>$Recording_date</b> at <b>$Recording_time</b> as a complaint number <b>$Complaint_year- $NbComplaint</b></td></tr>
    			<tr>
    				<td>Complainant name : <b>$Complainant_name</b></td>
    				<td width=20%>Natco : <b>$Natco</b></td>
    				<td width=20%>LOS : <b>$LOS</b></td>
    			</tr>
    		</form>
    		</table>";
    		$Desc=substr($Description,0,50);
    		echo"
    		<table style=table-layout:fixed>
    			<tr>
    				<td>Description : <b>$Desc</b> </td>
    			</tr>
    		</table>";
    		echo"
    		<table width=100%>
    			<tr>
    				<td width=50%>Status : <b>$Status</b></td>
    				<td width=50%> Problem type : <b>$Problem_type</b></td>
    			</tr>
    		</table>";
    
    		if ($CPSD=='0000-00-00')
    			{$CPSD="This problem has been not solved";}
    		else
    			{$CPSD="Problem solved to $CPSD";}
    			
    		if ($CPST=='00:00:00')
    			{$CPST="";}
    		else
    			{$CPST="at $CPST";}
    			
    		echo"
    		<table>
    			<tr>
    				<td></td>
    			</tr>
    			<tr>
    				<td><b>$CPSD $CPST</b></td>
    			</tr>
    		</table>";
    		?>
    		<HR width=100% size=4 color=darkblue>
    		<?
    	}
    }
    ?>

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    bien sûr que oui. Donne leurs deux valeurs différentes.
    La page suivante, tu sauras quel boutons à été appuyé en lisant la valeur et tu redirigeras vers une nouvelle page web ou une requête ou ce que tu veux.
    C'est ce qui est appelé un controlleur.

  3. #3
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu peux dans ton formulaire te rajouter un champ de type hidden avec le nom action. Quand tu cliques sur un boutons tu changes la valeur du champ action avant de faire le submit comme ca dans ton script tu testes la valeur de action pour savoir quel bouton a été appuyé.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Points : 65
    Points
    65
    Par défaut
    J'avais essayé avec la deuxième solution mais je pense que koopajah que tu as peut être mal compris. En fait mes deux boutons sont considérés comme submit. J'y arrive pas, je suis désespérée ...

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Justement comme ils sont considérés comme submit tu dois utiliser ma solution et un peu de javascript.
    Dans l'évènement "onclick" de chacun des deux boutons tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="document.nomdetaform.action.value = 'suppr';"
    (en changeant suppr par une valeur différente selon l'action et en ayant bien défini un champ action de type hidden. Comme ca quand ca poste ton formulaire tu récupères l'action en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_POST['action'] == "suppr")
    {
    // code de suppression
    }

  6. #6
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Points : 65
    Points
    65
    Par défaut
    Ca ne fonctionne toujours pas.
    Je travaille sous ie6 peut être que c'est pour quelque chose.

    Mon traitement se fait de cette façon
    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
     
    <?
    if (!isset($_POST['action']))
    {
    <form>
     //code de traitement de la recherche :
    - requête
    - et affichage des résultats grâce à une boucle while qui inclut aussi :
    echo"<input type='hidden' name=action>";
    					echo"<input type=image src=img/modify.bmp onclick='document.formchx.action.value =modify;'>
    					<input type=image src=img/delete.bmp onclick='document.formchx.action.value =del;'></td>";
     
     
    </form>
    }
    else
    {
     //if ($_POST['action'])=='del')
    {include"Delete.php"}
    else
    {include"Modify.php"}
    }
    ?>

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Ton code est ... étrange mais je suppose que tu l'as juste allégé pour le principe.
    Je pense que tu as besoin de mettre des guillemets autour de la nouvelle valeur du champ "action", si ca ne marche toujours pas, colle tout le code pour qu'on puisse tester (au moins le formulaire entier).

  8. #8
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method = "GET" action = "controlleur.php" ... >
        <input type = "submit" name = "Formulaire" value = "Modifier" />
        <input type = "submit" name = "Formulaire" value = "Supprimer" />
    </form>
    dans controlleur.php

    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
    	$choix = $_GET['Formulaire'] /*Récupération de la valeur Formulaire dans la variable choix*/
    	;
    	switch($choix) /* Selon la valeur de la variable choix, effectuer les cas suivants*/
    	{
    		case 'Modifier':
    			require("Modifier.php") /*Appel de la page Modifier.php*/
    			;
    			break
    			;
    		case 'Supprimer':
    			require("Supprimer.php") /*Appel de la page Supprimer.php*/
    			;
    			break
    			;
    	}
    	;
    Je pensais pas devoir t'écrire le code en entier mais bon...
    Avec ça, tu es sûre que ça marche.

  9. #9
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Points : 65
    Points
    65
    Par défaut
    Salut,

    J'y suis enfin arrivé, merci MimiCraCra44 mais comme j'ai pas regardé le forum, je suis arrivée à avancer seule. Par contre mon problème maintenant c'est que j'ai des boutons tout moche à la place de mes jolies images ...

    <input type="submit" src="/img/delete.bmp" name="submit" value="delete" onClick="document.getElementById('fuseaction').value = 'delete';" />
    <input type="submit" src="/img/modify.bmp" name="submit" value="modify" onClick="document.getElementById('fuseaction').value = 'modify';" />

    et si je mets un input type="image" ben mon formulaire ne fonctionne plus, apparemment ça viendrait de ie6. Une idée ?

  10. #10
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Points : 65
    Points
    65
    Par défaut
    Voilà c'est bon j'ai trouvé sur le forum HTML.
    Enfait j'avais fait la bétise de tout écrire en php, du coup dans les echo je ne pouvais pas mettre les " et c'est ça qui me faisait tout planter.
    En tout cas merci beaucoup !!

  11. #11
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Attention!

    Tu n'avais pas fait la bêtise d'écrire en PHP comme tu le dit...

    regardes

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo'
        <input type = "submit" name = "boutton_d_envoi" value = "bonjour" ... />'
    ;


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo"
        <input type = 'submit' name = 'boutton_d_envoi' value = 'bonjour' ... />"
    ;

    C'est la même chose!!!
    et ca marchera aussi bien que

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type = "submit" name = "boutton_d_envoi" value = "bonjour" ... />

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/03/2012, 12h30
  2. 2 actions (submit) pour un même formulaire.
    Par spirou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/01/2006, 03h31
  3. [debutant] deux boutons pour soumettre un formulaire.
    Par rvfranck dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/12/2005, 21h52
  4. [MySQL] submit multiples pour le même formulaire
    Par The Wretched dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/12/2005, 17h36
  5. Instruction SQL dans un bouton pour filtrer info formulaire
    Par beegees dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/09/2005, 14h26

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