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 :

Reload de la page au submit, et reset des champ


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut Reload de la page au submit, et reset des champ
    Bonjour,

    Mon problème est que lorsque j'envois mon formulaire si une des conditions n'est pas remplie, il m'affiche l'erreur que je gère via une alert javascript plus bas mais reset l'entièreté de mes champs.

    J'aimerais que les champs valides reste remplis même après l'envois si l'utilisateur rencontre une erreur.

    Voici mon code

    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
     
    if(isset($_POST['submit'])){ //Test clic envoi
     
    	if(!empty($_POST['marque']) && !empty($_POST['modele']) && !empty($_POST['petite_description']) && !empty($_POST['prix_htva']) && !empty($_POST['description']) && !empty($_POST['carac_1']) && !empty($_POST['image_alt'])) //Tests champs remplis
    	{
    		//Stockage des variables
    		$marque = bon_encodage($_POST['marque']);
    		$modele = bon_encodage($_POST['modele']);
    		$petite_description = bon_encodage($_POST['petite_description']);
    		$prix_htva = bon_encodage($_POST['prix_htva']);
    		$description = bon_encodage($_POST['description']);
    		$image_alt = bon_encodage($_POST['image_alt']);
     
    		$prix_htva = str_replace(",",".",$prix_htva);
     
    		$file_image = '';
     
    		//Test le prix
    		if(preg_match("#^[0-9]{1,7}\.[0-9]{2}$#", $prix_htva)){
     
    			$typesacceptes = array('image/jpeg','image/jpg','image/png','image/gif');
     
    			//vérifie si les images existent et qu'elles sont au bon format
    			if(!empty($_FILES['miniature']['name']) && !empty($_FILES['image']['name']) && in_array($_FILES['miniature']['type'],$typesacceptes) && in_array($_FILES['image']['type'],$typesacceptes))
    			{						
    					$image_tab_size = getimagesize($_FILES['image']['tmp_name']);
    					$miniature_image_tab_size = getimagesize($_FILES['miniature']['tmp_name']);
     
    					//Test si la taille est bonne
    					if(($image_tab_size[0]==172) && ($image_tab_size[1]==226) && ($miniature_image_tab_size[0]==80) && ($miniature_image_tab_size[1]==106)){
     
    						$requeteinsert = 'INSERT INTO article(marque,modele,petite_desc,HTVA,grande_desc) VALUES(\''.$marque.'\',\''.$modele.'\',\''.$petite_description.'\',\''.$prix_htva.'\',\''.$description.'\');';
     
    						$result = mysql_query($requeteinsert) or die("La base de donnée est inaccessible");
    						$lastid = mysql_insert_id();
     
    						$file_image = "article_".$lastid;
    						move_uploaded_file($_FILES['miniature']['tmp_name'],'images/miniatures/'.$file_image.".jpg");
    						move_uploaded_file($_FILES['image']['tmp_name'],'images/'.$file_image.".jpg");
     
    						$requeteinsert_suite = 'INSERT INTO images(image_alt,file_image,image_id) VALUES(\''.$image_alt.'\',\''.$file_image.'\',\''.$lastid.'\');';
     
    						mysql_query($requeteinsert_suite) or die("La base de donnée est inaccessible");
     
    						for($i=1;$i<=20;$i++){
    							if(!empty($_POST['carac_'.$i])){
    								$carac= bon_encodage($_POST['carac_'.$i]);
    								$requeteinsert_suite = 'INSERT INTO caracteristiques(carac,caracts_id,list_caracts) VALUES(\''.$carac.'\',\''.$lastid.'\',\''.$i.'\');';
    								mysql_query($requeteinsert_suite) or die("La base de donnée est inaccessible");
    								}
    							}	
    					}else{
    						$erreurs = 'L\'image n\'est pas à la bonne taille !';
    					}
    			}else{
    				$erreurs = 'Veuillez uploader une image valide (format jpg, png ou gif) !';
    			}
    		}else{
    			$erreurs = 'Veuillez renseigner un prix correcte (xxxxx,xx) !';
    		}
    	}else{
    		$erreurs = 'Veuillez renseigner tout les champs !';
    	}
    }
    Comment, puis je procéder?

    Merci d'avance.

    Gregory.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il suffit d'attribuer les valeurs correctes aux attributs value des champs correspondants à l'affichage du formulaire, donc pour chaque champ, vérifier si une valeur a été envoyée et si c'est le cas, si cette valeur est conforme, dans ce cas, on l'affiche.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre très actif
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Par défaut
    Bonjour,

    Avant de tester si tes champs sont vide, tu mets toutes tes variables vide.

    Exemple avec Marque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $marque = "";
    if(isset($_POST['submit'])){
    if(!empty($_POST['marque'])) //Tests champs remplis
    {
    $marque = bon_encodage($_POST['marque']);
    }
    }
    ?>
    <input type="text" name="marque" value="<?php echo $marque ?>" />
    De plus, pour afficher uniquement les valeurs bonnes, dans tes else tu peux réinitialiser tes variables.

    Par exemple avec Prix

    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
     
    <?php
    $prix_htva = "";
    if(isset($_POST['submit'])){
    if(!empty($_POST['prix_htva'])) //Tests champs remplis
    {
    $prix_htva = $_POST['prix_htva'];
    if(preg_match("#^[0-9]{1,7}\.[0-9]{2}$#", $prix_htva)){ 
     
    }
    else
    {
    $prix_htva = ""; // Remise à vide du prix pour ne pas l'afficher
    }
     
    }
    }
    ?>
    <input type="text" name="prix_htva" value="<?php echo $prix_htva ?>" />

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2014, 10h53
  2. [PHP-JS] enregistrement avant reload d'une page
    Par zycomatic dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2008, 09h51
  3. reload d'une page
    Par phoque.r dans le forum Langage
    Réponses: 5
    Dernier message: 17/04/2007, 13h14
  4. NOVICE - Reload d'une page Evenement
    Par cathar_rhythm dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/03/2007, 12h46
  5. Redirection vers la même page après submit de formulaire
    Par noOneIsInnocent dans le forum Struts 1
    Réponses: 5
    Dernier message: 27/10/2006, 15h36

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