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 :

validation formulaire chargement page


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut validation formulaire chargement page
    Bonjour,
    Je débute en php et JS je souhaiterais faire un exercice en php puis le meme en JS :
    Dans un formulaire je demande 3 prénoms; (c'est ok)
    Si ils ne sont pas par ordre alphabétique => je demande si ils souhaitent mettre les prénoms par ordre; (c'est ok)
    En cas de réponse "oui" je voudrais que les prénoms s'affichent en sous cette question, le problème survient quand je coche oui et je valide la page se recharge.
    Pouvez vous me dire ou il est l'erreur? peut être que le JavaScript est plus adapté et il n'est pas possible de le faire en php?
    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
    <h3> Choisissez trois prénoms</h3>
     
        <?php
     
            $prenom1 = isset($_POST["nom1"]) ? $_POST['nom1'] : '';
            $prenom2 = isset($_POST["nom2"]) ? $_POST["nom2"] : '';
            $prenom3 = isset($_POST["nom3"]) ? $_POST['nom3'] : '';
            $ordre = isset($_GET['alpha']) ? $_GET['alpha'] : '';
            $prenoms= [$prenom1, $prenom2, $prenom3];
        ?>
     
            <?php if ($prenom1 == "" && $prenom2=="" &&$prenom3 =="") :?>
                <form action="" method= "post" name="nom">
                    <label for ="nom1"> prenom 1 </label>
                    <input type="text" name="nom1" id="nom1">
                    <label for ="nom2"> prenom 2 </label>
                    <input type="text" name="nom2" id="nom2">
                    <label for ="nom3"> prenom 3 </label>
                    <input type="text" name="nom3" id="nom3">
                    <input type= "submit" value="soumettre" name="form1">
                </form>
     
            <?php elseif($prenom1 < $prenom2 && $prenom2 < $prenom3) :?>
                <?="vos prénoms sont : $prenom1 - $prenom2 - $prenom3. <i>Ils sont  par ordre alphabétique</i>" ?>
            <?php else :?> 
               <?="vos prenoms sont : $prenom1 - $prenom2 - $prenom3. <i>Ils ne sont pas  par ordre alphabétique</i>"?>
                <form action ="" method="GET" name="nom1">
                <input type="radio" name="alpha" id="ordre1" value="oui" >oui
                <input type="radio" name="alpha" id="ordre2" value="non">non
                <input type="submit" value="Valider" name ="form2">	
                </form>
            <?php endif ?>
     
            <?php 
            if ($ordre == "oui"){
                for($i=0; $i < 2; $i++) {
                    for($j = 0; $j < (2- $i); $j++) {
                        if($prenoms[$j] > $prenoms[$j+1]) {
                            $tmp = $prenoms[$j+1];
                            $prenoms[$j+1] = $prenoms[$j];
                            $prenoms[$j] = $tmp;
                            }
                        }  
                    }
                }
                    foreach($prenoms as $valeurs) {
                        echo $valeurs. "  ";
                    }
                ?>
    Désolé pour le code désordonné mais je débute.
    Merci

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    vous pouvez faire cela uniquement en php. de plus si vous débutez, je vous conseille de ne pas tout mettre dans un seul fichier et de mettre chaque affichage et chaque traitement dans un fichier différent.

    le souci est qu'à l'envoi d'un formulaire, seuls les champs qui sont à l'intérieur de "<form>...</form>" sont envoyés. donc pour faire cela, vous pouvez par exemple mettre les prénoms dans des balises "input type=hidden".

  3. #3
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    Je vous remercie pour votre réponse. Si je comprends bien je dois avoir plusieurs page php pour les affichage. Par contre je ne comprend pas quel serait le role de l'input caché. J'arrive a récuprer les prenoms dans la variable $prenoms mais je n'arrive pas à les faire afficher dans la même page. Je ne suis pas sur d'avoir compris votre explication.
    merci pour votre réponse rapide
    Matteo

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    regardez l'onglet "Réseau" de la console de développement de votre navigateur et vous verrez les requêtes http et les paramètres envoyés.
    par exemple avec Firefox, faites Ctrl + Maj + E
    https://developer.mozilla.org/fr/doc...ur_r%C3%A9seau

    pour le découpage des fichiers, j'ai mis un exemple en pièce-jointe.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre régulier
    Homme Profil pro
    Autre
    Inscrit en
    Mars 2021
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mars 2021
    Messages : 201
    Points : 92
    Points
    92
    Par défaut
    Bonjour,
    Tout d'abord je voudrais vous remercier pour le temps que vous m'avez consacré. Je comprends mieux l'utilité des input type ="hidden". Je vous remercie aussi pour votre exemple qui est très clair et l'utilisation de plusieurs fichiers est un bon conseil pour un débutant comme moi. Je vois qu'il y a une méthode pour mettre par ordre alphabétique
    Encore merci
    Matteo

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

Discussions similaires

  1. recharger page apres validation formulaire
    Par nicerico dans le forum jQuery
    Réponses: 5
    Dernier message: 19/08/2009, 08h16
  2. Fonction valider formulaire appelle 2 fois la même page. Comment éviter celà ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2009, 09h58
  3. ouverture new page apres validation formulaire
    Par jameson dans le forum Langage
    Réponses: 5
    Dernier message: 19/06/2008, 13h04
  4. Formulaire nouvelle page àprès validation
    Par jameson dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/06/2008, 10h56
  5. Validation formulaire ET renvoi vers autre page
    Par mosquitout dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 23/11/2005, 20h29

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