Ajax ne fonctionne pas... ?
Fermé
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
-
1 juin 2011 à 14:48
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 1 juin 2011 à 18:36
Fetide68 Messages postés 746 Date d'inscription dimanche 4 janvier 2009 Statut Membre Dernière intervention 16 septembre 2024 - 1 juin 2011 à 18:36
A voir également:
- Ajax ne fonctionne pas... ?
- Curl ajax ✓ - Forum Javascript
- Ajax qui ne fonctionne pas ✓ - Forum Javascript
- Erreur ajax ✓ - Forum Javascript
- Passer variable javascript en php ajax ✓ - Forum PHP
- Pub ajax carmen ✓ - Forum Musique / Radio / Clip
3 réponses
et la suite alors... lol :)
la tu nous sert ta fonction callback qui sera execute au retour d'une reponse mais tu n'a rien envoyé comme demande au serveur: donc tu n'aura jamais de reponse.
scriptTraitantLademande.php:
essaye deja ça et apres on affinera.
la tu nous sert ta fonction callback qui sera execute au retour d'une reponse mais tu n'a rien envoyé comme demande au serveur: donc tu n'aura jamais de reponse.
function getDPE() { var xhr = getXMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { alert (xhr.responseText); } }; var noCache = "?t=" + new Date().getTime(); // et oui les navigateur sont paresseux, ils vont pas a tous les coup interroger le serveur :) xhr.open("GET", "scriptTraitantLademande.php"+noCache, true); // GET: methode de transmission des donnée, scriptTraitantLademande.php : il traitera ta demande et te renvera une reponse , true: pour faire de l'asynchrone // si tu est en POST alors instruction a rajouter: xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(null); // envoi effectif de la demande, null pour dire ke tu ne passe pas de parametre, normal ici on est en get }
scriptTraitantLademande.php:
<?php ... ... ... echo "je suis pret"; // au retour de cette fonction ce qui est dans le onreadystatechange sera executé. mais pas avant !!!!! ?>
essaye deja ça et apres on affinera.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
Modifié par Fetide68 le 1/06/2011 à 16:24
Modifié par Fetide68 le 1/06/2011 à 16:24
Je croyais que le javascript s'exécutait dans l'ordre et donc que le xhr.onreadystatechange préparait la requête, alors j'avais réduit ma requête pour chercher d'ou venait l'erreur... Et comme, le onreadystatechange ne répondait pas, je me suis dit que c'était ça...
Mais en fait mon problème semble venir de la méthode post :
voilà ma fonction complète (elle est pas longue):
En GET ça marche, mais pas en POST...
Je vais le faire en GET (moins sécurisé ??) mais j'aimerais quand même comprendre mon erreur...
Au passage que fait exactement :
Je n'ai jamais eu de problème pour l'instant sur le rafraîchissement des pages apellées...
Merci pour ton aide. +1 !
Mais en fait mon problème semble venir de la méthode post :
voilà ma fonction complète (elle est pas longue):
function getDPE(id) { var xhr = getXMLHttpRequest(); dpe = document.getElementById('dpe'); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { dpe.innerHTML = xhr.responseText; } }; xhr.open("POST", "construction/dpe.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("ref="+id); }
En GET ça marche, mais pas en POST...
Je vais le faire en GET (moins sécurisé ??) mais j'aimerais quand même comprendre mon erreur...
Au passage que fait exactement :
var noCache = "?t=" + new Date().getTime();
Je n'ai jamais eu de problème pour l'instant sur le rafraîchissement des pages apellées...
Merci pour ton aide. +1 !
ya pas de raison que le POST ne fonctionne pas !!! en general si ya un souci ce que soit tes données transmise sont incorrect ou parfois le chemin d'accès a l'url est incorrect, soit tu ne les recupere pas correctement.
Fais voir ton script dpe.php .
var noCache = "?t=" + new Date().getTime(); permet juste d'empecher le navigateur de nous revoyé ce qu'il mis dans son cache. C'est un probleme qui arrive souvent quand on fait de l'ajax. c'est tant mieu pour toi si ton navigateur est bien configurer pour ne pas te reservir le cache. du coup, pour ne pas prendre de risque, on interroge a chaque fois avec une url differente : ça m'etonnerai qu'on puisse le faire plusieur fois en une seconde :) !!! bon bref voila pour plus de details ya pas mal de litterature la dessus sur le net.
Fais voir ton script dpe.php .
var noCache = "?t=" + new Date().getTime(); permet juste d'empecher le navigateur de nous revoyé ce qu'il mis dans son cache. C'est un probleme qui arrive souvent quand on fait de l'ajax. c'est tant mieu pour toi si ton navigateur est bien configurer pour ne pas te reservir le cache. du coup, pour ne pas prendre de risque, on interroge a chaque fois avec une url differente : ça m'etonnerai qu'on puisse le faire plusieur fois en une seconde :) !!! bon bref voila pour plus de details ya pas mal de litterature la dessus sur le net.
Fetide68
Messages postés
746
Date d'inscription
dimanche 4 janvier 2009
Statut
Membre
Dernière intervention
16 septembre 2024
32
1 juin 2011 à 18:36
1 juin 2011 à 18:36
Désolé j'ai trouvé mon erreur, mais c'est pas évident à trouver tout de suite...
Dans ma page de réponse, j'avais mis ça :
$id=isset($_POST['id']) ? intval($_GET['id']) : null
Faut savoir...
Merci à toi
Dans ma page de réponse, j'avais mis ça :
$id=isset($_POST['id']) ? intval($_GET['id']) : null
Faut savoir...
Merci à toi