Problème Ajax et passer un $_POST

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
Configuration: Windows XP
Firefox 3.0.11

6 réponses

  1. c'est isset($_POST['pseudo']

    et non pas isset($_POST['pseudo='] ^^
    0
    1. 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
      1. 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
        1. 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
          1. 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