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

JavaScript Discussion :

[AJAX] Insérer une réponse ajax dans un div


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Points : 35
    Points
    35
    Par défaut [AJAX] Insérer une réponse ajax dans un div
    Bonjour a tous,

    voila, ca fait un moment que je bloque sur un probleme qui semble assez evident pourtant.

    J'ai bien lut l'exemple des tuto ajax qui explique comment faire une liste liée...

    Moi j'ouvre à l'aide de la method GET des page web dans des div de ma page principale.

    Une de ces div contient un module de login et inscription.

    voici la page login.html

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <html>
    	<head>
    		<title>login</title>
    <!--liaison au fichier comprenant les fonctions ajax-->
    <script language="javascript" type="text/javascript" src="ajax.js"></script>
    <!-- script complementaire-->
     
    <script language="javascript" type="text/javascript">
    function login ()
    {
    	var xhr = newXHRObject();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('main').innerHTML = leselect;
    		}
    	}
    		// Ici on va voir comment faire du post
    	xhr.open("POST","login.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, login
    	sellogin = document.getElementById('login');
    	login = sellogin.options[sellogin.selectedIndex].value;
    	// ici, et mdp
    	selmdp = document.getElementById('mdp');
    	mdp = selmdp.options[selmdp.selectedIndex].value;
    	//enfin ce qui est envoyé est ceci
    	xhr.send("login="+login+"&mdp="+mdp);
    }
    </script>
     
     
    <body>
    <p align="left">
    <form method="POST" action="login.php">
    <input type="text" name= "login" id="login" value="Identifiant" /> <BR>
    <input type="password" name="mdp" id="mdp" value="password" /><BR>
    <input type="submit" value="OK"/>
    </form>
     
     
    </p>
    <p align="left">
    version avec ajax renvoie dans main
    <input type="text" name= "login" id="login" value="Identifiant" /> <BR>
    <input type="password" name="mdp" id="mdp" value="password" /><BR>
    <input type="button" onclick="login()" value="OK"/>
     
     
    </p>
     
     
    </body>
    </html>
    et la page de traitement php qui marche bien quand j'utilise un formulaire bidon. Le probleme est de l'envoyer dans la div de mon choix, et c'est pour ca que j'utilise de l'ajax.
    login.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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
     
    session_start();
     
    $login=$_POST['login'];
    $mdp=$_POST['mdp'];
     
    //Il faut tester si les valeur sont non nulles si renvoi 1 il faut revenir sur une page d'erreur qui permet aussi de s'enregistrer
     
    if(isset($login) and isset($mdp)) 
    { echo 'vous avez bien remplit un formulaire bidon. ';
    }
    else {echo'vous etes trop con';}
     
    //Il faut ecrire une recherche dans la base de donnée
     
        // VARIABLES DE CONNEXION
            $host    = 'localhost';        // Votre identifiant
            $user    = '**********';         // Votre identifant base de donnée
            $mdp_DB    = '';         // Votre mot de passe bade de donnée
            $base    = '*********';         // Nom de botre base
            $table     = 'user';        // Nom de votre table 
     
        // ON SE CONNECTE ET ON SELECTIONNE LA BASE
            mysql_connect($host, $user, $mdp_DB)
                or die("Impossible de se connecter au serveur ".$host);
            mysql_select_db($base)
                or die("Impossible de se connecter a la DB ".$base);
     
        // ON VERIFIE SI LE PSEUDO EST DANS LA TABLE
            $sql    = "SELECT mdp, niveau, mail FROM ".$table." WHERE login = '".$login."'";
            $res    = mysql_query($sql);
            $alors    = mysql_fetch_assoc($res);
            $mdp_de_la_DB = $alors['mdp'];
    	$niv=$alors['niveau'];
    	$mail=$alors['mail']; 
     
        // ON VERIFIE QUE LE LOGIN EXISTE
     	if($alors==0) {echo 'ce login est introuvable'; session_destroy();}
    	else { if($mdp==$mdp_de_la_DB) { echo 'Vous etes admis au paradis. ';
    //On peut sauvegarder les variables de session
    $_SESSION['login']=$login;
    $_SESSION['permission']=$niv;
    $_SESSION['mail']=$mail;
    echo '<h2>Bienvenue</h2>Vos variables de session sont '.$_SESSION['login'].' '.$_SESSION['mail'].' niveau de permission: '.$_SESSION['permission'];
     
    }}
     
    // on ferme la connexion à mysql
    mysql_close(); 
     
    //maintenant, suivant leniveau depermission on renvoie un menu de lien spécifique au membre.
    echo'page chargée';
     
    if ($niv>1)
    {echo 'Je suis membre';}
    if ($niv>2)
    {echo'je suis reporter';}
    if($niv>3)
    {echo'j\'ai l\'accés modo';}
    if($niv==7)
    {echo'je suis dieu, l\'admin';}
     
     
     
     
     
    ?>
    De l'aide SVP

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par dzada Voir le message
    De l'aide SVP
    2 choses :
    - Fait l'open avant d'assigner un onreadystatechange (c'est la façon préférée de faire, dès fois que l'open réinitialise tout)
    - Tu veux mettre ton contenu dans l'élement qui a l'id main, mais je ne vois aucun élement avec cet id dans ta page?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par denisC Voir le message
    Tu veux mettre ton contenu dans l'élement qui a l'id main, mais je ne vois aucun élement avec cet id dans ta page?
    slt,

    en fait je crois que sa page login.html est déjà chargée via Ajax dans une div de sa page...

    si c'est bien le cas je dirais que le JS de login.html n'est tout simplement pas lu... tant qu'à faire je créerais un fichier js comprenant ce code en question et je le mettrais directement sur la page "index"...
    Conception et hébergement de votre site Web : http://www.jvprod.fr !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2014, 23h18
  2. Insérer une page JSP dans un DIV avec AJAX
    Par sethi dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/03/2010, 21h04
  3. [MooTools] Traiter une réponse ajax XML avec Mootools
    Par dolu02 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 24/12/2008, 16h58
  4. (AJAX) charger une page aspx dans un div
    Par divinThomas dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2008, 13h12
  5. [AJAX] Insérer une gallerie flash
    Par Samyhijodelaluna dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/03/2007, 14h07

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