11548 sujets
Bonjour
J'ai un peu avancé sur mon sujet et voici ce que j'ai fais avec ajax !
j'ai un formulaire d'identification simple
les données sont envoyées donc par de l'ajax grace à ceci :
ces données étant récupérées (enfin normalement) je les traite ici dans du php
Contexte : Je suis sous Chrome
Mon URL de départ est du style localhost/dossierXX/ dans lequel donc réside mon index.php
Après avoir cliqué sur mon bouton de formualaire mon URL devient
localhost/AA_Template-Constellation/php/?login=admin&pass=aaaaa&connexion=Connexion
Donc je ne comprends pas pourquoi ce comportement vu que je suis en POST
Auriez-vous une idée ?
Et mon résultat ne s'affiche pas dans mon div resultat
Auriez-vous une idée ?
Merci d'avance
Modifié par iviewclear (08 Jan 2011 - 13:00)
J'ai un peu avancé sur mon sujet et voici ce que j'ai fais avec ajax !
j'ai un formulaire d'identification simple
<form id="formconnexion">
<div class="server-info" id="resultat">Connectez-vous !</div>
<div class="server-info">identifiant
<input type="text" name="login" id="login2" style="font-size: smaller; width: 70px;" value=""/></div>
<div class="server-info">Mot de passe
<input type="password" name="pass" id="password2" style="font-size: smaller; width: 70px;" value=""/>
<input type="submit" name="connexion" value="Connexion" onchange="go()"/>
</div>
<a href="#" class="button red" title="Logout">
<span class="smaller">LOGOUT</span></a>
</form>
les données sont envoyées donc par de l'ajax grace à ceci :
<script type="text/javascript">
function getXMLHttpRequest() {
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject) {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
} else {
xhr = new XMLHttpRequest();
}
} else {
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function go(){
var xhr = getXMLHttpRequest();
// 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){
txtAafficher = xhr.responseText;
document.getElementById('resultat').innerHTML = txtAafficher;
alert(txtAafficher);
}
else {
alert('There was a problem with the request.');
}
}
// Ici on va voir comment faire du post
xhr.open("POST","page.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// POST des arguments
// ici, le login et le mot de passe
// Cette forme-là
var argLogin = encodeURIComponent(document.getElementById('login2').value);
var argPass = encodeURIComponent(document.getElementById('password2').value);
var data = "login=" + arglogin + "&pass" + argPass;
xhr.send(data);
}
</script>
ces données étant récupérées (enfin normalement) je les traite ici dans du php
<?php
header("Content-Type: text/plain");
$login = (isset($_POST["login"])) ? $_POST["login"] : NULL;
$pass = (isset($_POST["pass"])) ? $_POST["pass"] : NULL;
if ($login && $pass) {
echo "Bonjour " . $login . " ! Je vois que votre mot de passe est " . $pass;
} else {
echo "FAIL";
}
?>
Contexte : Je suis sous Chrome
Mon URL de départ est du style localhost/dossierXX/ dans lequel donc réside mon index.php
Après avoir cliqué sur mon bouton de formualaire mon URL devient
localhost/AA_Template-Constellation/php/?login=admin&pass=aaaaa&connexion=Connexion
Donc je ne comprends pas pourquoi ce comportement vu que je suis en POST
Auriez-vous une idée ?
Et mon résultat ne s'affiche pas dans mon div resultat
Auriez-vous une idée ?
Merci d'avance
Modifié par iviewclear (08 Jan 2011 - 13:00)
Bon j'ai fais quelques modifications
Celle-ci :
Et celle-ci
Ce qui a pour effet de ne plus modifier mon URL
Mais maintenant il s'avère au clic sur mon bouton de connexion que je passe 3 fois de suite dans mon test
pour finalement afficher dans mon alert la bonne info c'est-à-dire la récupération de la valeur saisie dans mon formulaire
JE SUIS UN PEU PERDU avec ce comportement que je n'arrive pas à expliquer
Quelqu'un meut-il modifier avec ça ? SVP
Merci à vous
Celle-ci :
<input type="button" name="connexion" value="Connexion" onclick="go()"/>
Et celle-ci
<form id="formconnexion" action="page.php" action="POST">
Ce qui a pour effet de ne plus modifier mon URL
Mais maintenant il s'avère au clic sur mon bouton de connexion que je passe 3 fois de suite dans mon test
else {
alert('There was a problem with the request.');
}
pour finalement afficher dans mon alert la bonne info c'est-à-dire la récupération de la valeur saisie dans mon formulaire
JE SUIS UN PEU PERDU avec ce comportement que je n'arrive pas à expliquer
Quelqu'un meut-il modifier avec ça ? SVP
Merci à vous