begin process at 2012 05 28 15:08:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Web 2.0

 > 

Ajax

 > 

AJAX - probleme envoi d'un POST


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

AJAX - probleme envoi d'un POST

mercredi 17 février 2010 à 11:52:04 | AJAX - probleme envoi d'un POST

ju0123456789

Bonjour,

Je vais essayer d'etre précis dans ma demande sachant que je suis débutant en AJAX.
Je construis actuellement une page d'album photo que j'essaye déséspérément de mettre en AJAX. j'ai un Select qui sélectionne un album photo (sur la page "gestion_photos.php"), et les photos s'affichent en ajax, en dessous de chaque photo j'ai un lien "supprimer"

voici mon lien :
Code PHP :
echo "<A href='#' onclick='supp(".$ID.");'>Supprimer</A>


Ma fonction Supp :
Code Javascript :
function supp(Var1)
{
  var xhr = GetXHR();
  xhr.onreadystatechange = function()
  {
    if(xhr.readyState == 4 && xhr.status == 200)
    {
      leselect = xhr.responseText;
      document.getElementById('suppDIV').innerHTML = leselect;
    }
  }
  url = "/html/requete-ajax.php";
  xhr.open("POST",url,false);
  
  alert(Var1);
  xhr.send('idphoto=' + 'Var1');
}


Et c'est dans "requete-ajax.php" que j'ai tout mon traitement au niveau de la BDD, mais tout en haut de mon fichier je teste
Code PHP :
if( isset( $_POST['idphoto'] ) )
et il me renvoie toujours FALSE ! :'( snif

Alors que mon alert dans mon script PHP est toujours niquel.
Sans l'envoi de ce post je suis completement bloqué.

Comment faire svp ?

Merci
mercredi 17 février 2010 à 13:44:47 | Re : AJAX - probleme envoi d'un POST

Vonscott

As tu essayé dans ton php

echo '<a href="#" onclick="supp('.$ID.');">Supprimer</a>';

à la place de :

echo "<A href='#' onclick='supp(".$ID.");'>Supprimer</A>
mercredi 17 février 2010 à 14:10:48 | Re : AJAX - probleme envoi d'un POST

ju0123456789

Bonjour et merci de ta réponse.
Oui j'ai essayé, j'ai meme essayé

Code PHP :
<A href='gestion_photos.php?id=".$ID."'>Supprimer</A>


Mais le $_POST['idphoto'] ne marche pas

en début de page "requete-ajax.php" j'ai mis
Code PHP :
if (isset( $_POST['idphoto'] ))
{
	echo "OK";
}
else
{
	echo "NAN";
}

Et il me marque toujours "NAN"

au niveau de mon code javascript, on m'a conseillé de faire ma fonction 'supp' comme suivant :
Code Javascript :
function supp(Var1)
{
  var xhr = GetXHR();
  url = "/html/requete-ajax.php";
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.open("POST",url,false);
  alert(Var1);
  xhr.send('idphoto=' + Var1);
}
mais ça ne change rien. Je ne comprends pas
mercredi 17 février 2010 à 21:02:56 | Re : AJAX - probleme envoi d'un POST

kohntark

Membre Club
Salut,

- Conserve le setRequestHeader()
- Passe ton false à true dans le xhr.open

.... ça devrait le faire.


Cordialement,

Kohntark -

jeudi 18 février 2010 à 09:22:58 | Re : AJAX - probleme envoi d'un POST

ju0123456789

hello ! Non ça ne marche pas.
J'ai ma page, ou j'ai ma fonction 'Supp'
Code Javascript :
function supp(Var1)
{
  var xhr = GetXHR();
  url = "/html/requete-ajax.php";
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.open("POST",url,true);
  xhr.send('idphoto=' + Var1);
  alert(Var1);
}code]

Et donc dans ma page "requete-ajax.php" j'ai juste mis en haut de page : 
[code=php]if( isset( $_GET['idphoto'] ) && $_GET['idphoto'] != "" )
{
	echo "OUAIIIIIIIIIIIIIIIIIIIIIIIIIIS";
}
else
{
	echo "NAAAAAAAAAAAAAAAAAAAAAAAAAAN";
}

Mais il m'affiche toujours "NAAAAAAAAAAAAAAAAAAAAAAAAAAN"
J'ai remarqué qu'il y avait une ereur Javascript qui tombe sur la ligne du header. C'est peut être mon probleme moais je ne vois pas d'où ça peut venir.

Merci
jeudi 18 février 2010 à 10:03:45 | Re : AJAX - probleme envoi d'un POST

kohntark

Membre Club

Non ça ne marche pas.


... pourtant chez moi si

Ce que je voulais dire c'est reprendre ta première fonction, pas la seconde qui dans l'état actuelle n'est pas prête de te retourner quelque chose.
Tu y ajoutes "xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');"
Tu passes ton false à true


Ton "alert(Var1);" tel qu'il est placé t'informe uniquement que ta fonction est exécutée, ce qui n'apporte pas grand chose.

Si tu veux savoir ce qu'il se passe pendant l'exécution de la requête tu peux ajouter un alert juste après function(){ :
Code Javascript :
alert("Etat de la requête : "+xhr.readyState);

(cf google pour les correspondances)


Si tu n'as aucune alert postes ta fonction GetXHR() et dis nous quel navigateur tu utilises.

Il faut également que tu saches ce que tu veux :
- soit tu procèdes en GET, et tu récupères avec $_GET
- soit tu utilises POST, et tu récupères via $_POST
Dans ton dernier exemple tu mélanges les deux.

Cordialement,

Kohntark -

jeudi 18 février 2010 à 12:34:56 | Re : AJAX - probleme envoi d'un POST

ju0123456789

Ok merci effectivement j'ai fait qq boulettes.
J'ai décidé de mettre tout en POST

J'ai donc modifié mon ficheir "requete-ajax" comem ceci :
Code PHP :
if( isset( $_POST['idphoto'] ) && $_POST['idphoto'] != "" )
{
  echo "OUAIIIIIIIIIIIIIIIIIIIIIIIIIIS";
}
else
{
  echo "NAAAAAAAAAAAAAAAAAAAAAAAAAAN";
}


J'ai également remis ma fonction "supp" comme suivant :
Code Javascript :
function supp(Var1)
{
  var xhr = GetXHR();
  xhr.onreadystatechange = function()
  {
    if(xhr.readyState == 4 && xhr.status == 200)
    {
      leselect = xhr.responseText;
      document.getElementById('suppDIV').innerHTML = leselect;
    }
  }
  url = "/html/requete-ajax.php";
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xhr.open("POST",url,false);
  xhr.send('idphoto=' + Var1);
  alert("Etat de la requête : " + xhr.readyState);
}


Mais j'ai apparemment un erreur JS au niveau de la ligne
Code Javascript :
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


Et voici ma fonction GetXHR :
Code Javascript :
function GetXHR()
{
  var xhr = null; 

  if(window.XMLHttpRequest)
  {
    xhr = new XMLHttpRequest();
  }
  else if(window.ActiveXObject)
  {
    try
    {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  else
  {
    alert("Votre navigateur ne supporte pas l\'ajax..."); 
    xhr = false; 
  }
  return xhr;
}


Il y a t-il quelque chose d'anormal ?

Merci bcp.

Ju'
jeudi 18 février 2010 à 20:53:21 | Re : AJAX - probleme envoi d'un POST

kohntark

Membre Club

Il y a t-il quelque chose d'anormal ?


Oui :

Mais j'ai apparemment un erreur JS au niveau de la ligne


Quelle erreur ??

- pourquoi ne tiens tu pas compte de ça :

Tu passes ton false à true



Si tu veux savoir ce qu'il se passe pendant l'exécution de la requête tu peux ajouter un alert juste après function(){ :
Code Javascript :

alert("Etat de la requête : "+xhr.readyState);


(cf google pour les correspondances)


=> ton alert n'est pas placé au bon endroit et surtout tu ne dis pas ce que ça donne dans l'exécution de ton code (quels rapports d'états affichés) hors c'est le meilleur moyen de débugger.

Et puis :

url = "/html/requete-ajax.php";


=>
essaie de remplacer par 'url = "html/requete-ajax.php";' et assure toi que le chemin soit valide à partir de la page d'appel.

Cordialement,


Kohntark -

vendredi 19 février 2010 à 09:42:04 | Re : AJAX - probleme envoi d'un POST

ju0123456789

L'erreur JS fournie par IE
"erreur non spécifiée Ligne 79"
cette ligne est la ligne de l'header de la fonction Supp()

J'ai passé à False car j'avais mal lu, il m'avait semblé lire qu'il fallait que je passe à False, désolé. J'ai corrigé, mais toujorus le même souci.

En ce qui concerne l'état de la requete, elle est à 1, donc ça doi pas être bon alors :(

Concernant le chemin de la page d'appel est bon, pour être sûr j'ai mis "../html/" au lieu de "/html/"



Je reviens vite fait sur cette histoire de "true" et "false", mon état de la requete devient 4 si je mets false, et reste à 1 sur je mets true. 4 c'est bon je crois, mais sur l'autre par je ne recoi visiblmement rien en POST.

Si vraiment tu ne vois pas mon probleme, ça m'embeterais mais j'ai quand meme trouvé une alternative en PHP. Pas en AJAX comme je l'aurais voulu mais bon... S'il n'y a que ça je prendrai :)

C'est quand meme chiant quand ça marche pas lol
vendredi 19 février 2010 à 23:04:14 | Re : AJAX - probleme envoi d'un POST

kohntark

Membre Club

Pas en AJAX comme je l'aurais voulu mais bon... S'il n'y a que ça je prendrai :)


tu ne vas pas te laisser faire par une petite requête ajax tout de même ?

Je te propose de reposter l'intégralité de ton code (celui réellement nécessaire) afin de repartir sur une base claire.
Je viens de faire un test avec IE8 => fonctionne sans pb (ainsi que FF 3.5.8)
Quelle version de IE te donne cette erreur ?

Concernant le mode asynchrone (true) et synchrone (false) je reste un peu perplexe.
Ton script tel qu'il est, et surtout en considérant ton but, gagnerait je pense à être en asynchrone.

Cordialement,

Kohntark -


1 2

Cette discussion est classée dans : code, php, post, ajax, xhr


Répondre à ce message

Sujets en rapport avec ce message

[AJAX/PHP] - echange les $POST ? [ par bazbazus ] bonjour a tous J'ai un petit problème je veux récupérer des paramètres passés par POST via un objet XMLHttpRequest. mais pas les [b]envoyer[/b] les [b Modifier une variable php sans passer par un fomulaire [ par mailliam ] Tcho à tous! Je veux afficher une grille faite avec 100 images (10x10). J'aimerais que quand je clique sur la 1ère image ça envoie une variable php a Formulaire avec Ajax PHP MySQL [ par vargas ] Bonjour à tous je m'adresse à vous car je suis pris avec un grand problème, je sais qu'il y a beaucoup des post que parlent déjà de mon problème mais problème avec récupération $_POST [ par Parisssi ] bonjour voila ça 2 jours que je n'arrive pas à résoudre mon problème. J'ai le formulaire suivant et je n'arrive pas à récupérer le contenu de ma varia problème de boucle for et d'organisation dans mon code php [ par msi079 ] salut . je voudrais utiliser la boucle for dans mon code pour enregistrer les données (les préjudices). voici ce que je veux : une personnes peut avoi $ is undefined problème ajax [ par suke94 ] Bonjour à tous, J'ai un petit souci je rencontre cette erreur "$ is undefined". J'ai l'impression que mon fichier jquery.js n'est pas reconnus. Je vou formulaire php [ par ainfographie ] Bonjour à tous, je viens vers vous car je désespère. J'ai créé un formulaire de contact, pour mon site, j'aimerais recevoir les infos dans ma boîte ma Problèmes listes déroulantes dynamiques avec php et ajax [ par maha1987 ] Bonjour tout le monde, je veux afficher 3 listes liées dynamiquement ,mon problème c'est que la 1ère et la 2ème liste s'affichent mais la 3ème non, vo Formulaires [ par jmp kjm ] Bonjour, J'ai un problème pour correctement gérer le routage du visiteur vers la bonne application. Dans index.php j'ai : [code=php]if(!$_POST['ouv


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales