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 de formulaire et affichage dans une DIV


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Validation de formulaire et affichage dans une DIV
    Bonjour à toutes et à tous,

    Après moultes recherches sur différentes "solutions" possibles à mon problème, je m'en remet à votre savoir.

    je gère l'affichage de mon site avec des DIV. J'ai donc une page main.php avec mes différent DIV :entete, menu, contenu.

    Depuis mon menu j'affiche un formulaire de saisie dans ma <DIV id="contenu"></DIV>. jusque là point de problème.

    Mon formulaire de saisie fait appel à un script de validation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM  Method='POST' Action='valid.php'> avec un classique <input type=submit name=submit value="Valider">.
    Le problème reside dans le fait que valid.php ne s'affiche pas dans la DIV contenu. mais s'affiche en pleine page.

    J'ai essayé de faire des redirections type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <SCRIPT language=Javascript>
    function redirect() {
    document.forms[0].submit();
    location.href = "main.php#contenu"
     }
    </SCRIPT> 
     
    ...
     
    <input type=submit name=submit value="Valider" onclick="redirect()" >
    ou même en PHP avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Location: ./main.php');
    dans la page valid.php

    pour lequel j'obtiens l'erreur :
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts....
    Idem en suivant les conseils sur ce post :ici
    mais cela ne fonctionne pas.

    Je précise à toutes fins utiles que j'utilse le script ahah.js

    Comment faire pour rester dans la DIV contenu ?

    Merci par avance pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 97
    Points : 119
    Points
    119
    Par défaut
    Si tu veux que la validation se fasse sans pour cela changer de page, tu as deux solutions :

    1/ inclure ton valid.php vers le début main.php et l'utiliser lorsque $_POST['tonform'] existe. Il faudra également changer ton form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="./main.php" method="post" id="monform">[...]</form>
    Et dans ton main.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if(isset($_POST['monform'])){
    	require_once('valid.php');
    	//effectuer les tests de ton formulaire
    }
    2/ utiliser de l'ajax pour appeler ton script de validation sans changer de page.

    La méthode utilisant ajax est à mon sens plus élégante et permet de ne pas recharger la page aux yeux de l'utilisateur.
    Mon tit blog: blog.uliniux.org
    Dans la vie, on peut faire autre chose que travailler: Suivez le guide

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    La grande classe rfufu

    ça marche .

    j'ai juste modifié (pour ceux que cela intéresse ) l'emplacement du code que j'ai placé entre <DIV id="contenu"></DIV>

    petit débutant en PHP que je suis, je n'aurai jamais pensé à ta solution qui pourtant semble simple.

    Pour l'ajax ceux qui ont des liens sur des tutos ... je suis preneur

    Merci en tous les cas

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 97
    Points : 119
    Points
    119
    Par défaut
    J'ai aimé beaucoup de langage de programmation, mais javascript n'en faisait pas parti.
    Et je dois dire que c'est le framework jquery qui m'a réconcilier avec le javascript. Faire de l'ajax avec Cet outil est aussi simple que bonjour.
    Pour les docs, il y a plusieurs tutos sur ce site et si ce n'est pas assez, google est ton ami.
    Mon tit blog: blog.uliniux.org
    Dans la vie, on peut faire autre chose que travailler: Suivez le guide

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/08/2019, 15h52
  2. [AJAX] Formulaire et affichage dans une DIV
    Par guillaume-13015 dans le forum AJAX
    Réponses: 2
    Dernier message: 16/02/2015, 17h01
  3. [AJAX] Affichage dans une div
    Par buched dans le forum jQuery
    Réponses: 4
    Dernier message: 04/06/2014, 19h41
  4. Affichage du post d'un formulaire dans une div
    Par xounet dans le forum jQuery
    Réponses: 2
    Dernier message: 06/05/2014, 21h59
  5. [AJAX] Ajax xmlhttpRequest : affichage d'un résultat dans une div
    Par kataboy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/12/2007, 15h47

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