Problème Ajax et passer un $_POST
nyeri
Messages postés
49
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
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
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:
- Problème Ajax et passer un $_POST
- Passer de qwerty a azerty - Guide
- Passer a windows 10 - Accueil - Mise à jour
- Identifiant et mot de passe - Guide
- Passer un texte en majuscule - Guide
- Passer à windows 11 gratuitement - Guide
6 réponses
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 ?
Une autre idée ?
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;
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;
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essayes avec la fonction ainsi:
et supprimes la globale xhr
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;