Problème Ajax et passer un $_POST

Fermé
nyeri Messages postés 45 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 29 février 2012 - 2 juil. 2009 à 10:13
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 2 juil. 2009 à 13:39
Bonjour,
Je vous présente mon problème, jessaie de faire une validation de formulaire à l'aide d'Ajax mais j'ai une erreur pour faire passer mon $_POST et je ne voie pas du tout d'ou vient le problème. Voila mon code

Mon formulaire ou je rentre mes valeurs :

<html>
<head>
<title>Saisie</title>
<script src="ajax.js" type="text/javascript"></script>
</head>
<body>
<fieldset>
<legend>Information générale</legend>
<table>
<tr>
<td id="formulaire_inscription_pseudo">Pseudo :</td>
<td><input type="text" name="pseudo" id="pseudo" value="" size="60" onKeyup="ajax_pseudo();"/></td>
<td id='result_pseudo'></td>
</tr>


mon fichier ajax.js

var xhr = null;

//Créons une fonction de création d'objet XMLHttRequest
function get_Xhr()
{
if(window.XMLHttpRequest)
{
xhr = new XMLHttpRequest();
}
else if(window.ActiveXOject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(el)
{
xhr = null;
}
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest\nVeuillez le mettre à jour");
}
return xhr;
}



function ajax_pseudo()
{
// Creation de l'objet XMLHttpRequest
get_Xhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
// Que fera AJAX si tout se passe bien, il va inserer dans le div "iris" le resultat de la page appellée
document.getElementById('result_pseudo').innerHTML = xhr.responseText;
}
}
// Nous allons interroger ajax_pseudo.php pour recuperer la reponse
xhr.open("POST",'ajax/ajax_pseudo.php',true);
xhr.setRequestHeader('Content-Type','x-www-form-urlencoded');
pseudo = document.getElementById('pseudo').value;
// Nous envoyons à ajax_pseudo.php la valeur du submit
xhr.send("pseudo="+pseudo);
}


Mon fichier ajax_pseudo

<?php

require_once "../config.php";

if(isset($_POST['pseudo=']))
{
$pseudo=mysql_real_escape_string(htmlspecialchars($_POST['pseudo=']));
echo $pseudo;

//On vérifie si le pseudo n'ai pas déjà utilisé
$verification_pseudo = mysql_query("SELECT COUNT(*) FROM client WHERE pseudo='$pseudo'");
$donnees_pseudo = mysql_fetch_array($verification_pseudo);

if($donnees_pseudo['COUNT(*)'] >= 1)
{
echo("<font style=\"color:red\"><img src='../gfx/erreur.png' alt=''/> Votre pseudo est déjà enregistrée dans la base de donnée</font>");
}
else
{
echo("<font style=\"color:green\"><img src='../gfx/valide.png' alt=''/> Pseudo OK</font>");
}
}
else
{
echo("PROBLEME");
}

?>


J'obtient toujours le message d erreur PROBLEME. Si je fait pas le test isset , il me dit undefine index pseudo. En gros que $_POST['pseudo'] existe pas. Le soucie c'est que je ne voie pas d'ou vient mon erreur.

Merci
A voir également:

6 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
2 juil. 2009 à 10:21
c'est isset($_POST['pseudo']

et non pas isset($_POST['pseudo='] ^^
0
nyeri Messages postés 45 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 29 février 2012
2 juil. 2009 à 10:23
Ah oui , mais c'est pas sa :) c'etait juste un teste meme lorsque je met juste pseudo sa ne marche pas.

Une autre idée ?
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 186
2 juil. 2009 à 10:27
T'as un autre pbleme, à l'appel de ton var get_Xhr() :

il faut que tu mettes xhr = get_Xhr();


edit : j'avais pas vu que tavais mis une variable xhr globale ^^
dans ce cas le return de ton get_Xhr ne sert pas à grand chose ^^

re-edit : tu fais un pseudo = document.getElementById('pseudo').value;
mais pseudo est définit nul part :S
il faut mettre var pseudo = document.getElementById('pseudo').value;
0
nyeri Messages postés 45 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 29 février 2012
2 juil. 2009 à 10:40
Alors ma fonction ressemble à ceci maintenant :

function ajax_pseudo()
{
// Creation de l'objet XMLHttpRequest
get_Xhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
// Que fera AJAX si tout se passe bien, il va inserer dans le div "iris" le resultat de la page appellée
document.getElementById('result_pseudo').innerHTML = xhr.responseText;
}
}
// Nous allons interroger ajax_pseudo.php pour recuperer la reponse
xhr.open("POST",'ajax/ajax_pseudo.php',true);
xhr.setRequestHeader('Content-Type','x-www-form-urlencoded');
var pseudo = document.getElementById('pseudo').value;
// Nous envoyons à ajax_pseudo.php la valeur du submit
xhr.send("pseudo="+pseudo);
}

et j'obtient toujours cette erreur :

Notice: Undefined index: pseudo in C:\Program Files\EasyPHP 3.0\www\gecko\dossier3\ajax\ajax_pseudo.php on line 6
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nyeri Messages postés 45 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 29 février 2012
2 juil. 2009 à 11:09
up
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 juil. 2009 à 13:39
Essayes avec la fonction ainsi:

function ajax_pseudo()
{
// Creation de l'objet XMLHttpRequest
var xhr=get_Xhr();
xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{
		// Que fera AJAX si tout se passe bien, il va inserer dans le div "iris" le resultat de la page appellée
			document.getElementById('result_pseudo').innerHTML = xhr.responseText;
		}
	}
// Nous allons interroger ajax_pseudo.php pour recuperer la reponse
xhr.open("POST",'ajax/ajax_pseudo.php',true);
xhr.setRequestHeader('Content-Type','x-www-form-urlencoded');
var pseudo = document.getElementById('pseudo').value;
// Nous envoyons à ajax_pseudo.php la valeur du submit
data="pseudo="+pseudo;
//TEST
alert( 'data envoyees :'+data);

xhr.send(data);
}


et supprimes la globale xhr
var xhr = null;
0