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

PHP & Base de données Discussion :

requete sur la même page


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 293
    Par défaut requete sur la même page
    bonjour, bon je vais essayer de m'expliquer correctement pour que vous puissiez m'aider.

    lorsque je fais une requete passant par un formulaire , donc j'ai mon formulaire avec un bouton submit qui envoie vers une autre page et sur cette page je fais ma requete , voici le code

    page formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form action="verif_login.php" method="post" id="formulaire_login" name="formulaire_login">
    <input type="text" name="edit_login">  
    <input type="password" name="edit_pass">
    <input type="submit" name="valider" value="Valider">
    <input type="reset" name="initialiser" value="Initialiser" 
    </form>
    et voici le code de la requete,

    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
     
    <? 
    require("config_server.php"); 
     
    if(isset($_POST['edit_login']) && isset($_POST['edit_pass'])) { 
      extract($_POST); 
     
      // on recupère le password de la table qui correspond au login du visiteur 
     
     $sql = "select *  from admin where login='".$_POST['edit_login']. 
    "' AND password='".$_POST['edit_pass']."'"; 
     
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
      $result = mysql_num_rows($req); 
      $row = mysql_fetch_assoc($req); 
     
      if ($result > 0) { 
         session_start(); 
        $_SESSION['login'] = $_POST['edit_login']; 
     
        // tapage.php signifie la page où tu veux que l'utilisateur aille 
        header("Location:gestion_index.php"); 
       } 
      // else redirige vers ta page de login 
      else { 
     
            echo "<script>alert ('erreur de login');</script>"; 
          echo "<script>window.location= 'gestion.php';</script>"; 
     
     
          } 
     
    }
    ?>

    bien sur ce code marche très bien mais lorsque j'appuie sur valider dans le formulaire la requete se fait sur la page appelée par le bouton submit

    voilà ce que je voudrais c'est mettre la requete et le formulaire sur la même page est ce possible si oui comment

    à mon avis ce n'est pas possible avec un formulaire car le submit envoie vers une page mais je ne sais pas comment m'y prendre

    je voudrais faire cela car j'emploie des pseudos frames avec include.

    si qqun peut m'aider

    merci

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    salut,

    bon de toute façon, quand tu submit, tu dois appeler une page quoi qu'il arrive pour executer le code PHP correspondant à la validation de ton formulaire.

    Ensuite, rien ne t'empeche d'appeler la meme page que le formulaire en y prévoyant plusieurs cas de figure. ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $traiter_form = $_POST[traiter_form];
    if(isset($traiter_form) && ($traiter_form))
    {
          // Je traite mon formulaire.
    }
    else
    {
         // j'affiche mon formulaire
         // et je pense a rajouter dans le forumulaire echo '<input type="hidden" name="traiter_form" value="1">';
    }
    Tu peux également en profiter pour faire un système qui conserve tes valeurs en réafichant le formulaire si ce dernier à été mal renseigné et donc non traiter

    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
    $traiter_form = $_POST[traiter_form];
    if(isset($traiter_form) && ($traiter_form))
    {
          // Je traite mon formulaire.
          if($traitement == 'erreur') // si t'as une erreur dans le traitement liée a une erreur dans la saisie du formulaire par l'utilisateur
                   $traiter_form = 0;
     
    }
     
    if(isset($traiter_form) && (!$traiter_form))
    {
         // j'affiche mon formulaire
         // et je pense a rajouter dans le forumulaire echo '<input type="hidden" name="traiter_form" value="1">';
         // j'appel mes champs comme suit : echo '<input type="text" name="nom" value="'.($nom ? $nom : '').'">';
    }
    De cette manière, ton champs conservera les valeurs saisies lors de la validation précédante, et l'utilisateur n'aura plus qu'a les modifier avant de resoumettre.

    ps : désolé, exemples ecrits a l'arrache

Discussions similaires

  1. 2 menus sur une même page
    Par pihug12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/12/2005, 18h15
  2. [PHP-JS] Envoi de données sur une même page...
    Par dudux dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2005, 13h51
  3. [QuickReport] Entete de groupe + détail sur la même page
    Par portu dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/06/2005, 10h15
  4. lien sur une même page asp
    Par Redouane dans le forum ASP
    Réponses: 4
    Dernier message: 10/03/2004, 15h53

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