[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:
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:
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