Exercices

LocalStorage Weather Api ToDo et LocalStorage

React+ionic

Ionic Create project 4.React Outils utiles 5.Lifecycle Methods 6.JSX

Gestion Ventes

Produit CRUD

6.Form :Ajouter un produit 8.Liste produits 9.Pagination 10.Liste produits +Pagination 11.Liste produits +Datatable 11.Liste produits +load more 12.Supprimer un produit 14.Details d'un produit 15.Recherche et Autocomplete

Reacts:Utils

Gestion des erreurs Variables d'environment Cookies Internationalization proptypes Form validation React Animation Fragment Google Maps

Utilisateur CRUD

18.Inscription upload file 19.Connexion et Les sessions 19.Connexion: JWT Token

Ventes CRUD

17.Vendre un produit 18.Facture Generate PDF 19.Statisques Charts

Redux





Document

Project Details

Exercice : création de compte

Auteur : Bilal Zouine

Description : description Cet exemple montre un formulaire de création de compte avec validation des champs obligatoires. Lorsque tous les champs sont remplis et que le formulaire est soumis, un message de succès s'affiche. Si des champs sont vides, une alerte est déclenchée.

Fonctionnalités :
  • Collecter les informations de l'utilisateur (nom, email, mot de passe).
  • Valider que tous les champs sont remplis avant la soumission.
  • Afficher un message de succès lorsque le compte est créé.
  • Empêcher le rechargement de la page lors de la soumission du formulaire.
Illustration de l'exercice
Code :
              
                import React, { useState } from 'react';

// Fonction qui gère le formulaire de création de compte
export default function SignupForm() {
    // États pour stocker les informations de l'utilisateur
    const [username, setUsername] = useState('');
    const [email, setEmail] = useState('');
    const [password, setPassword] = useState('');
    const [isSubmitted, setIsSubmitted] = useState(false);

    // Fonction pour gérer la soumission du formulaire
    const handleSubmit = (e) => {
        e.preventDefault() // Empêche le rechargement de la page
        // Vérifie si tous les champs sont remplis
        if (username !== "" && email !== "" && password !== "") {
            setIsSubmitted(true) // Change l'état à soumis si tous les champs sont remplis
            return;
        }
        alert("Tous les champs sont obligatoires.") // Alerte si des champs sont vides
    }

    return (
        <div className="container mt-5">
            <fieldset className="w-75 mx-auto mb-3">
                <legend className="text-cnter text-info">Formulaire de création de compte</legend>
                {
                    isSubmitted ? (
                        // Affichage d'un message de succès si le formulaire est soumis
                        <p className='alert alert-success '>Compte créé !!!!!!</p>
                    ) : (
                        // Formulaire pour saisir les informations de l'utilisateur
                        <form onSubmit={handleSubmit} className='alert alert-danger'>
                            <div className="form-group">
                                <label className='form-label'>nom et prenom</label>
                                <input type="text" className="form-control" name="name" onChange={(e) => { setUsername(e.target.value) }} value={username} />
                            </div>
                            <div className="form-group">
                                <label className='form-label'>email</label>
                                <input type="email" className="form-control" name="email" onChange={(e) => { setEmail(e.target.value) }} value={email} />
                            </div>
                            <div className="form-group">
                                <label className='form-label'>password</label>
                                <input type="password" className="form-control" name="password" onChange={(e) => { setPassword(e.target.value) }} value={password} />
                            </div>
                            <div className="form-group">
                                <input type="submit" value="Créer un compte" className="btn btn-info fw-bold d-flex mx-auto bt-sm mt-3" />
                            </div>
                        </form>
                    )
                }
            </fieldset>
        </div>
    )
}