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 :

mon php ne traite pas mon formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut mon php ne traite pas mon formulaire
    bonjour voila j'ai un formulaire qui me permet de gérer des transformateurs.

    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
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<link rel="stylesheet" href="../Parc_Transformateur.css" />
    		<title>  </title>
    		<style type="text/css"> #hidden { display: none;  } </style>
    	</head>
    	<body>
    	<div>
    		<?php 
    		include_once("menu_admin.php");
    		include_once("../db_connection.php");
    	if(isset($_POST["send1"]))
    	{
    	echo "erreur";
    		$errors="";
    			if (!(isset($_POST["choix"]))) $errors = $errors."<p class='ligne_erreur'> Veuillez séléctionner si le transformateur est en service ? </p>";
    		//if ($_POST["identifiant"]=="oui" $errors=$errors."<p class='ligne_erreur'>Tout les champs doivent être remplis</p>";
    		//if($_POST["identifiant"]!= $_POST["identifiant1"]) $errors=$errors."<p class='ligne_erreur'>Les deux identifiants ne sont pas identiques</p>";
    		//$identifiant1=$_POST["identifiant"];
    		if ($_POST["choix"]=="") $errors = $errors."<p class='ligne_erreur'> Veuillez séléctionner si le transformateur est en service ? </p>";
    		if($errors=="")
    		{
    			$requete="INSERT INTO installation VALUES ('".$_POST['identifiant']."', '".$_POST['nom']."', '". $_POST['gdo']."', '".$_POST['date']."')" ;
    			$resultat=mysql_query($requete) or die(mysql_error());
    			if ($resultat) echo "<p class='titre_2'>Saisie enregistrée </p>";
    		} else echo $errors;
    	} else {}	
    		?>
    	<form name ="form2" action="transformateur.php" method="post">
    	<fieldset>
    	<legend class="titre_1">Nouveau transformateur à saisir ? </legend>
     
    	<p class="ligne_form_1">Choix (*) : Oui<input name="choix" type="radio" value="oui" />Non<input name="choix" type="radio" value="non"/></p>
    	<fieldset id="hidden">
    	<legend class="titre_1">Saisir les informations de la commune de retour</legend>
    	<p class="ligne_form_1">Identifiant (*) : <input name="identifiant" type="text" /></p>
    	<p class="ligne_form_1">Nom (*) : <input name="nom" type="text" /></p>
    	<p class="ligne_form_1">GDO (*) : <input name="gdo" type="text" /></p>
    	<p class="ligne_form_1">Date (*) : <input name="date" type="text" /></p>
    	</fieldset>
    	<p class="ligne_form_1"> (*) Tous les champs sont obligatoires.</p>
    	<p class="ligne_form_1"><input name="send1" type="submit" value="Envoyer" /><input name="reset" type="reset" value="Annuler" /></p>
    	</fieldset>
    	</form>
    	</div>
    	<script type="text/javascript">
    	var oui = document.form2.choix[1];
    	var non = document.form2.choix[0];
    	oui.onclick=function(){ document.getElementById ("hidden").style.display ="block" };
    	non.onclick=function(){ document.getElementById ("hidden").style.display ="none" };
    	</script>
     
     
    	</body>
    </html>
    une fois que ej clique sur le bouton d'envoi, ça m amene directement sur la deuxieme page transformateur.php sachant que je rentre rien. moi je veux qu'il me traite les erreurs et enregistrer dans la abse de donnée avant d'etre envoyer sur la page transformateur.php. j'ai l impression que mon code php ne fais rien . Merci pour votre aide

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2013
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 24
    Points : 35
    Points
    35
    Par défaut
    Salut,

    lors de la validation d'un formulaire, les informations sont envoyées à la page que tu as indiquée dans l'attribut "action". Donc, si tu mets transformateur.php dans action, c'est normal que les traitements que tu effectue sur une autre page ne soient pas pris en compte.

    Tu peux par contre dans action mettre la page où tu fais tes contrôles d'erreur et, si il n'y a pas d'erreur, faire une redirection vers ta page de traitement (transformateur.php) en forwardant les données du formulaire (par url ou par session par exemple) mais cela me paraît peu optimisé.

    Quel intérêt réel as-tu de faire les traitements d'erreur sur une page (celle du formulaire) et le reste des traitemens sur une autre ?

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name ="form2" action="transformateur.php" method="post">
    C'est bien normale qu'il directement la page vers transformateur.php c'est la qui est redirigé l'action de ton formulaire. Utilises la même page pour l'action et fait une redirection quand tout est bon.

    A+.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    je vous remercie, en fait je suis débutant en php. Et là, j'ai compris ce qu'il faut Merci. Mais juste une question, pour être redirigé vers la deuxième page, est ce que je peux mettre le lien sur le bouton d'envoi?

  5. #5
    Invité
    Invité(e)
    Par défaut
    PRINCIPE de TRAITEMENT et FORMULAIRE sur la même page :
    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
    <?php
    // Initialisation
    $form_valid = 0;
    $form_msg_err = '';
    $form_msg_OK = '';
     
    // SI le formulaire a été soumis
    if (isset($_POST['envoi_form'])) {
    	// TRAITEMENT (fichier inclus)
    	include('./traitement_formulaire.php');
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <!-- ........ -->
    </head>
    <body>
    <!-- ........ -->
     
    <?php if ($form_valid == 2){ // Affichage message d'erreur ?>
    	<p class="msg_erreur"><?php echo $form_msg_err; ?></p>
    <?php } elseif ($form_valid == 1){ // Affichage message OK ?>
    	<p class="msg_OK"><?php echo $form_msg_OK; ?></p>
    <?php } ?>
     
    <?php
    // Affichage du formulaire
    if ($form_valid == 0 || $form_valid == 2){
    ?>
    <form name="form_fiche" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <!-- action sur la même page -->
    	<!-- ........ -->
    	<input type="submit" name="envoi_form" value="envoyer" />
    </form>
     
    </body>
    <html>
    Fichier de traitement traitement_formulaire.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php // TRAITEMENT (fichier inclus)
    // 1/ RECUPERATION des données du formulaire
    $var1 = (isset($_POST['var1']))? $_POST['var1'] : '';
    .......
    .......
    .......
    // 2/ GESTION DES ERREURS => en cas d'erreur : 
    if(.........){
    	$form_valid = 2;
    	$form_msg_err .= 'Oups ! .......<br />';
    }
    if(.........){
    	$form_valid = 2;
    	$form_msg_err .= 'Argh ! .......<br />';
    }
    if($form_valid != 2){ // OK
    	$form_valid = 1;
    }
    // 3/ TRAITEMENT SI PAS d'erreur
    if($form_valid == 1){
    	..............
    	..............
    	..............
    	..............
    	..............
    	$form_msg_OK .= 'Good ! .......';
    }
    Dernière modification par Invité ; 13/06/2013 à 10h33.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Un formulaire ne peut être envoyé que vers une seule page avec un lien ou un bouton submit. Fait une redirection côté php avec header location quand tout est bon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location : transformateur.php");
    Met les codes PHP pour le traitement au début du fichier avant les balises html.

    A+.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    ça marche bcp mieu, la j'ai une problématique comme je peux récupérer la valeur d'un bouton radio . ca marche pas $choix= $_POST['choix'], afin de pouvroir faire un test avec if si la selection était oui ou non car j'aime bien inserer dans la base de donnée selon un choix mais aps l autre .

  8. #8
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p class="ligne_form_1">Choix (*) : Oui<input name="choix" type="radio" value="oui" />Non<input name="choix" type="radio" value="non"/></p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $choix = $_POST['choix'];
    if($choix=='oui'){
    ...
    } elseif($choix=='non'){
    ...
    }
    Où est le problème ?

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    Merci bcp jreaux62 c'est gentille de ta part. ça marche tres bien

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

Discussions similaires

  1. Mon store ne charge pas mon combobox
    Par solo190 dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 14/10/2014, 17h20
  2. Mon XLS ne traite pas le XML qui est dans du php
    Par Marc22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/05/2010, 09h48
  3. Réponses: 0
    Dernier message: 11/05/2010, 14h11
  4. Mon repeater ne consomme pas mon "OnItemDataBound"
    Par chti_vince dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/07/2007, 10h54
  5. [MySQL] Problème PHP/Mysql mon php n'exécute pas la requête
    Par matew dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/04/2007, 13h01

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