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

AJAX Discussion :

[AJAX] Charger ,recharger page


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 48
    Par défaut [AJAX] Charger ,recharger page
    Bonjour ,

    Donc je souhaite rendre vraiment dynamique un site ,je prévoit du php, javascript ajax pour cela ,je ne sait pas si j'ai vraiment besoin de code ou si c'est seulement une façon de penser qu'il me faut ,pour commencer assez simplement et pouvoir m'introduire je pense me pencher sur une identification toute banale mais sans vouloir recharger tout les éléments de mon site :

    J'ai tenter ceci :


    Index.php :

    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
    <script language="JavaScript">
    	function recup(login, pwd)
    {
      var OAjax;
      if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
      else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP'); 
      OAjax.open('POST',"verif_id.php",true);
      OAjax.onreadystatechange = function()
      {
          if (OAjax.readyState == 4 && OAjax.status==200)
          {
              if (document.getElementById) 
              {    
                  if (OAjax.responseText =='true') { /* OK */
                        document.getElementById('msg').innerHTML='<font color=GREEN>'+OAjax.responseText+'</font>';
                  }else{                             /* PAS OK */
                        document.getElementById('msg').innerHTML='<font color=RED>'+OAjax.responseText+'</font>';
                  }
              }     
          }
      }
      OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
      OAjax.send('login='+login+'&pwd='+pwd);                  
    } 
     
    </script>	
    </head>
    <body onload="">
    <?php
    require("session.php");
     
    if (empty($_SESSION['nom']))
    {
    echo "Bonjour Visiteur";
    }else{
    $nom = $_SESSION['nom'];
    $prenom = $_SESSION['prenom'];
     
    echo "Bonjour ".$nom." ".$prenom;
    }
     
    ?>
    <form method="post" onsubmit="recup(this.login.value,this.pwd.value);return false" action="">
    login :<input type="text" id="login" name="login"><br/>
    pwd :<input type="password" id="pwd" name="pwd"><br/>
    <input type="submit" id="submit" name="submit">
    </form>
    <div id="msg"></div>
     
    </body>
    Ici j'appel par le biais de ma fonction recup() une page php (ci-dessous) qui vérifie mon formulaire (ci-dessus).

    verif_id.php :

    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
    <?php
     
    $erreurs=array();
     
    if(!$_POST['login'] OR !$_POST['pwd']){
        $erreurs[]='Toutes les cases doivent etre remplit';
    }
     
     
    if(count($erreurs)==0)
    {
            
        require("connect.php");
            require("session.php");
            $log = $_POST['login'];
            $pwd = $_POST['pwd'];
            
            $table = "user";
            
            $req1 = "SELECT * from ".$table." where MAIL= '".$log."'";
            $result = mysql_query($req1) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); ;
            $rep = mysql_fetch_assoc($result);
     
            if($pwd == $rep['PASS'])
            {
     
                            $_SESSION['id'] = $rep['TIE_ID'];
     
            }
            else
      {
      echo "mauvais couple login/pass";
      }
        
    }
    else
    {
        echo "<p class='erreur'>";
            for($i=0;$i<count($erreurs);$i++)
            {
            echo "- ".$erreurs[$i].".<br />";
            }
        echo "</p>";
    }
    ?>
    A vrai dire l'ensemble du code je le comprend bien et n'est pas eu trop d'erreur mais voila ça se complique lorsque je valide le formulaire ,j'afficher mon message de bienvenu mais celui-ci ne change pas (et oui bien que la verif du formulaire ne fait pas changer de page tout les autres paramètres ne sont pas recharger ,donc si quelqu'un à une façon intelligente de prendre le problème ,dois-je recharger plusieurs partie de mon code ? Puis-je recharger les page que j'importe de la même manière ? le tout sans bouton superflus ? Comment dois-je procédé sans recharger toute la page ? je suis ouvert à toute suggestion et espère avoir été clair !!

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par défaut
    Bonjour,

    Il est normal que le message de bienvenue ne change pas. Dans ton code il est généré à l'appel de la page coté serveur.

    La solution serait de le mettre dans un label :
    echo "<label id='messageBienvenue'>Bonjour Visiteur</label>";

    De ce fait il sera possible de le changer sur le sucess de la requête ajax.
    document.getElementById('messageBienvenue').innerHTML="bonjour toto";

    Ce bout de code :
    else{
    $nom = $_SESSION['nom'];
    $prenom = $_SESSION['prenom'];

    echo "Bonjour ".$nom." ".$prenom;
    }
    Ne sera jamais utilisé sauf si la page entière était rechargé.

    Par ailleurs il est plus intéressant de vérifier si le login et le password n'est pas vide avant de faire la requête en ajax :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var login=document.getElementById('login').value;
    var pwd=document.getElementById('pwd').value;
    if(login!="" && pwd!=""){
          requête ajax
    }
    L'ajax est intéressant si c'est pour recharger une partie de ta page mais n'est pas fait pour charger toute les pages de ton site.(bien que c'est possible ...)

    Je te conseille aussi de séparer ton code js,css de ta page html/php le must étant bien sur une archi mvc.

    Bon courage.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 48
    Par défaut re
    Je te remercie pour tes conseils avisés. Je vais testé tout cela et me renseigner sur les archives pour mvc.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 48
    Par défaut
    Désolé quand je parlais d'archi MVC, c'est de l'architecture Model,Vue et Controlleur dont je voulais parler.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 48
    Par défaut re
    Ok je suis perplexe et jamais à l'aise bien que je comprend l'utilité les controlleur me donne la migraine ^^

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2009, 11h13
  2. [AJAX] Charger une page php dans un div
    Par drannh dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 14/05/2008, 12h16
  3. (AJAX) charger une page aspx dans un div
    Par divinThomas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2008, 13h12
  4. [AJAX] Charger des pages en Ajax
    Par persia dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 10/09/2007, 16h07
  5. [AJAX] Charger une page dans un div
    Par pcdj dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/07/2007, 20h15

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