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 :

Gérer 2 submit


Sujet :

Langage PHP

  1. #1
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut Gérer 2 submit
    Bonjour.

    J'ai un formulaire avec un select, des input text, des textarea et 2 submit.
    Le submit A affiche les données dans les input text et les textarea en fonction du select.
    Le submit B doit me permettre de supprimer de la bdd les données affichées.

    Est ce qqu'un peut me dire comment traiter ces 2 submit.
    Merci d'avance

  2. #2
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Salut,

    Qu'entends-tu par traiter ?

    Tu parles du code php qui va inserer les données dans la base etc ...

    Ou alors c'est la gestion de deux submit dans un formulaire ?

  3. #3
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Il suffit de leur mettre un nom différent.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    if (isset($_POST['submit1']))
    {
       // j'ai soumis le premier submit
    }
    else if (isset($_POST['submit2']))
    {
       // j'ai soumis le second submit
    }
    ?>
     
    <input type="submit" name="submit1" />
    <input type="submit" name="submit2" />
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    C'est bien ça : gestion de 2 submit dans un formulaire

  5. #5
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Et bien c'est comme genova l'a dit plus haut sauf qu'il faut mettre submit2 dans la dernière ligne, à la place de submit1.

  6. #6
    Membre chevronné
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Par défaut
    Oups j'ai corrigé ma coquille, merci ^^
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    J'ai fait la modif mais ça marche pas :
    L'affichage des données est correcte mais si je clique sur supprimer, les données ne sont pas supprimées de la bdd
    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
    <p align="center" style="margin-top:10px"><font face="verdana" size="2"><b>SUPPRIMER UN RESEAUX DE LA BASE DE DONNEES</b></font></p>
    <?php
      require('connect.php');
     	if(isset($_POST['nom_reseau']))      $nom_reseau=$_POST['nom_reseau'];
    	else      $nom_reseau="";
     	if(isset($_POST['historique']))      $historique=$_POST['historique'];
    	else      $historique="";
     	if(isset($_POST['coordonnees']))      $coordonnees=$_POST['coordonnees'];
    	else      $coordonnees="";
     	if(isset($_POST['adresse1']))      $adresse1=$_POST['adresse1'];
    	else      $adresse1="";
     	if(isset($_POST['adresse2']))      $adresse2=$_POST['adresse2'];
    	else      $adresse2="";
     	if(isset($_POST['adresse3']))      $adresse3=$_POST['adresse3'];
    	else      $adresse3="";
     	if(isset($_POST['code_postal']))      $code_postal=$_POST['code_postal'];
    	else      $code_postal="";
     	if(isset($_POST['ville']))      $ville=$_POST['ville'];
    	else      $ville="";
     	if(isset($_POST['telephone']))      $telephone=$_POST['telephone'];
    	else      $telephone="";
     	if(isset($_POST['fax']))      $fax=$_POST['fax'];
    	else      $fax="";
     	if(isset($_POST['email']))      $email=$_POST['email'];
    	else      $email="";
     	if(isset($_POST['site']))      $site=$_POST['site'];
    	else      $site="";
    	if(isset($_POST['idreseau']))      $idreseau=$_POST['idreseau'];
    	else      $idreseau="";
    ?>
    <?php
     
    //récupération des données du réseau sélectionné
    if (!empty($_POST['reseau'])){
    	if (isset($_POST['afficher'])){
    		$sql = mysql_query('SELECT * From r2sreseaux WHERE id_reseau = '.$_POST['reseau'],$connexion);
    		if (mysql_num_rows($sql) > 0)
    		{
    	   		$res = mysql_fetch_array($sql);
    	   		$idreseau = $res['id_reseau'];	
    	   		$nom_reseau = $res['nom_reseau'];
    	   		$coordonnees = $res['coordonnees'];
    	   		$adresse1 = $res['adresse1'];
    	   		$adresse2 = $res['adresse2'];
    	   		$adresse3 = $res['adresse3'];
    	   		$code_postal = $res['code_postal'];
    	   		$ville = $res['ville'];
    	   		$telephone = $res['telephone'];
    	   		$fax = $res['fax'];
    	   		$email = $res['email'];
    	   		$site = $res['site'];
    		}
    	}
    	else if (isset($_POST['supprimer'])){
    	    	$s = "DELETE FROM r2sreseaux WHERE id_reseau = '$idreseau'"; 
        		$sql = mysql_query($s) or die(mysql_error().'<br>'.$s);	
    		echo "<table align=center><tr><td><font color='blue' size='2' face='verdana'>Le réseau est supprimé de la base.</font></td></tr></table>"; 
    	}
        		mysql_close();  // on ferme la connexion 
    }
    ?>
     
    <!--************ CHARGEMENT DES REGIONS **************-->
    <form name="reseaux" method="POST">
    <table style="margin-top:0px; margin-left:256px">
    	<tr>
    		<td align="center" bgcolor="blue" colspan="2"><font face="verdana" size="2" color="white"><b> Sélectionnez un réseau</b></font></td>
    	</tr>
    	<tr>
    		<td colspan="2" align="center">
    			<SELECT name="reseau" style="width:680px">
    			<OPTION value=""></OPTION>
    <?php
    			$result_sql = mysql_query('Select * From r2sreseaux Order by nom_reseau',$connexion);
    			while ($row = mysql_fetch_array($result_sql))
    			{ 
    ?>
    			<option value='<?php echo $row['id_reseau']?>'><?php echo $row['nom_reseau']?></option>
    <?php
    			}
    			echo '</select></td><tr><td align="center"><input type="submit" name="afficher" value="Afficher les données">';
    ?>
     
    			<td align="center"><input type="submit" name="supprimer" value="confimer la suppression">
    </table>
    </form>
     
     
    <!--************ FORMULAIRE DE SAISIE **************-->
    <form name="fiche" method="POST">
    <table border="0" style="margin-top:-20px; margin-left:100px">
    	<tr>
    		<td class="tdrg">Nom du réseau :<br> <font color="red">(champ obligatoire)&nbsp;</font></td>
    		<td><input type="text" name="nom_reseau" value="<?php echo $nom_reseau; ?>" style="width:680px"></td>
    	<tr>
    		<td class="tdrg">Coordonnées :</td><td colspan="3"><input type="text" name="coordonnees" value="<?php echo $coordonnees; ?>" style="width:680px"></td>
    	<tr>
    		<td class="tdrg" valign="top" rowspan="3">Adresse :</td><td colspan="3"><input type="text" name="adresse1" value="<?php echo $adresse1; ?>" style="width:280px"></td>
    	<tr>	
    		<td colspan="3"><input type="text" name="adresse2" value="<?php echo $adresse2; ?>" style="width:280px"></td>
    	<tr>	
    		<td colspan="3"><input type="text" name="adresse3" value="<?php echo $adresse3; ?>" style="width:280px"></td>
    	<tr>
    		<td class="tdrg">Code postal :</td><td colspan="3"><input type="text" name="code_postal" value="<?php echo $code_postal; ?>" style="width:100px"></td>
    	<tr>
    		<td class="tdrg">Ville :</td><td colspan="3"><input type="text" name="ville" value="<?php echo $ville; ?>" style="width:280px"></td>
    	<tr>
    		<td class="tdrg">Téléphone :</td><td colspan="3"><input type="text" name="telephone" value="<?php echo $telephone; ?>" style="width:100px"></td>
    	<tr>
    		<td class="tdrg">Fax :</td><td colspan="3"><input type="text" name="fax" value="<?php echo $fax; ?>" style="width:100px"></td>
    	<tr>
    		<td class="tdrg">e-mail :</td><td colspan="3"><input type="text" name="email" value="<?php echo $email; ?>" style="width:280px"></td>
    	<tr>
    		<td class="tdrg">Site internet :</td><td colspan="3"><input type="text" name="site" value="<?php echo $site; ?>" style="width:280px"></td>
    			<input type ="text" name="idreseau" value="<?php echo $idreseau; ?>">	
    </tr>
    </table>
    </form>
    J'ai supprimé quelques lignes de mon tableau pour simplifier.

  8. #8
    Membre éclairé Avatar de Pahcixam
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 289
    Par défaut
    Je sais pas si sa résoudra ton problème, mais déjà j'ai vu deux erreurs:

    Dans ta requête, prefère cette écriture:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $s = "DELETE FROM r2sreseaux WHERE id_reseau='".$idreseau."'";
    a celle là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $s = "DELETE FROM r2sreseaux WHERE id_reseau = '$idreseau'";
    Ensuite, dans ton formulaire, il faudrait que tu indiques à quel fichier tu renvois, ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="fiche" method="POST" action="ta_page.php">
    Voilà essaye déjà ça.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    ça ne change rien

    Le problème s'est que je dois perdre $idreseau.
    si je remplace :
    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
    if (!empty($_POST['reseau'])){
    	if (isset($_POST['afficher'])){
    		$sql = mysql_query('SELECT * From r2sreseaux WHERE id_reseau = '.$_POST['reseau'],$connexion);
    		if (mysql_num_rows($sql) > 0)
    		{
    	   		$res = mysql_fetch_array($sql);
    	   		$idreseau = $res['id_reseau'];	
    	   		$nom_reseau = $res['nom_reseau'];
    	   		$coordonnees = $res['coordonnees'];
    	   		$adresse1 = $res['adresse1'];
    	   		$adresse2 = $res['adresse2'];
    	   		$adresse3 = $res['adresse3'];
    	   		$code_postal = $res['code_postal'];
    	   		$ville = $res['ville'];
    	   		$telephone = $res['telephone'];
    	   		$fax = $res['fax'];
    	   		$email = $res['email'];
    	   		$site = $res['site'];
    		}
    	}
    	else if (isset($_POST['supprimer'])){
    	    	$s = "DELETE FROM r2sreseaux WHERE id_reseau = '$idreseau'"; 
        		$sql = mysql_query($s) or die(mysql_error().'<br>'.$s);	
    		echo "<table align=center><tr><td><font color='blue' size='2' face='verdana'>Le réseau est supprimé de la base.</font></td></tr></table>"; 
    	}
        		mysql_close();  // on ferme la connexion 
    }
    par :
    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
    if (!empty($_POST['reseau'])){
    	if (isset($_POST['afficher'])){
    		$sql = mysql_query('SELECT * From r2sreseaux WHERE id_reseau = '.$_POST['reseau'],$connexion);
    		if (mysql_num_rows($sql) > 0)
    		{
    	   		$res = mysql_fetch_array($sql);
    	   	$idreseau = $res['id_reseau'];	
    	   	$nom_reseau = $res['nom_reseau'];
    	   	$coordonnees = $res['coordonnees'];
    	   	$adresse1 = $res['adresse1'];
    	   	$adresse2 = $res['adresse2'];
    	   	$adresse3 = $res['adresse3'];
    	   	$code_postal = $res['code_postal'];
    	   	$ville = $res['ville'];
    	   	$telephone = $res['telephone'];
    	   	$fax = $res['fax'];
    	   	$email = $res['email'];
    	   	$site = $res['site'];
    		}
    	}
    }
    	else if (isset($_POST['supprimer'])){
    	    	$s = "DELETE FROM r2sreseaux WHERE id_reseau = '".$idreseau."'"; 
        		$sql = mysql_query($s) or die(mysql_error().'<br>'.$s);	
    		echo "<table align=center><tr><td><font color='blue' size='2' face='verdana'>Le réseau est supprimé de la base.</font></td></tr></table>"; 
    	}
        		mysql_close();  // on ferme la connexion 
    }
    J'ai bien le message de suppression qui est affiché.
    Donc le problème c'est que lorsque je clique sur le bouton afficher tout s'affiche mais quand je clique sur le bouton supprimer, je perds $idreseau.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $s = "DELETE FROM r2sreseaux WHERE id_reseau = '".$idreseau."'";
    si ton id_reseau est un integer(ce qui serait logique pour une clé primaire) évite d'encadrer ta valeur dans la requete ($idreseau) par des apostrof(dsl pas de dico sous la main ) ou autres guillemets

  11. #11
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 428
    Par défaut
    Bonjour,
    Ton $idreseau est defini dans le bloc Afficher, jamais dans le bloc supprimr (ou ai-je mal lu ?).
    Je ferais :
    $s = "DELETE FROM r2sreseaux WHERE id_reseau = '".$_POST['reseau']."'";

    De plus je ne comprend pas pourquoi dans ta partie afficher tu a $idreseau = $res['id_reseau'];
    Alors que tu te sers justement de cette valeur pour faire ton select... avant.
    Bref, le plus simple serait peut-etre de faire au tout debut :
    if (!empty($_POST['reseau']))
    {
    $idreseau=$_POST['reseau'];
    if(isset($_POST['afficher)){}
    elseif (isset($_POST['Supprimer'])){}
    }

    S.

  12. #12
    Membre éprouvé
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Par défaut
    Bon j'ai reris ça et mon problème est résolu.
    En fait j'ai mis chaque submit dans un formulaire différent et ça marche.

    Merci

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

Discussions similaires

  1. Gérer soi même on Submit
    Par riete dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/01/2008, 17h30
  2. Réponses: 1
    Dernier message: 27/03/2007, 12h24
  3. [PHP-JS] Gérer plusieurs submit
    Par Franckintosh dans le forum Langage
    Réponses: 4
    Dernier message: 16/11/2006, 15h18
  4. Gérer le ALT-TAB ?
    Par Magus (Dave) dans le forum DirectX
    Réponses: 15
    Dernier message: 04/01/2004, 00h43
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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