gabi26
Messages postés38Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention12 avril 2009
-
4 avril 2009 à 00:03
gabi26
Messages postés38Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention12 avril 2009
-
4 avril 2009 à 15:30
Bonjour,
je viens cherche un peu d'aide car je cale sur un problème élémentaire que je n'arrive pas à résoudre.
J'ai une simple requête ajax au moyen d'Ajax.Updater.
Mon script fonctionne intégré au sein d'une simple page, mais je ne peux pas l'intégrer à l'index de mon site, pour une raison que j'ignore complètement (c'est exactement le même script et j'ai même désactivé tous les javascripts à l'intérieur des balises <head></head> pour être certaine qu'il n'y avait pas de conflit).
Je vois que Firebug signale une erreur, mais je n'arrive pas à interrompre le déroulement de la requête dès l'erreur survenue. Du coup je ne vois pas où ça plante. Il termine la requête, il semble même qu'il m'est transféré les données, il termine et...rien.
Voici le script (il marche)
index.php
<html>
<head>
<titre>Ajax.Updater</titre>
<script language="javascript" type="text/javascript" src="prototype.js"></script>
<script language="javascript">
function tester()
{
elementHTML = document.getElementById('divid');
var url = "mapage.php";
o_options = new Object();
o_options = {method: 'get',onComplete:gestionReponse};
var laRequete = new Ajax.Updater(elementHTML,url,o_options);
}
function gestionReponse(xhr)
{
if (xhr.status == 200)
{
$('divid').innerHTML = xhr.responseText;
}
else
{
$('divid').innerHTML = xhr.status;
}
}
</script>
</head>
[ J'appelle ma page]
Div à rafraichir
</html>
mapage.php
<?php
echo "je suis la page appelée!!! (enfin peut-être...vu que c'est pas gagné!)";
?>
Comment faire pour que s'interrompe la requete dès l'erreur survenue?J'ai ausi esayé avec onSuccess et onFailure...Rien à faire...Firebug enchaîne les étapes sans s'arrêter...Et toujours pas de div rafraichi...
Et pourquoi ce script marche seul mais pas dans l'index de mon site...?
Si quelqu'un a une idée. Je serair ravie de l'entendre. Je continue de chercher mais j'ai déjà épluché pas mal de forums et tutoriaux...Je ne sais plus comment m'y prendre. J'ai testé mille et une versions! Rien à faire.
merci d'avance.
gabi26
Messages postés38Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention12 avril 2009 4 avril 2009 à 15:30
C'est bien la console d'erreurs qui n'affiche rien: ou plutôt le code de mon index.php sans une ligne d'erreur. Mais maintenant je sais!
Eureka!!! Ai enfin trouvé. C'était à cause de src="prototype.js" placé dans la balise <script> de la fonction "tester"que je n'avais pas vu. Evidemment il cherchait pas au bon endroit. Donc ça marche. Reste plus qu'a intégrer un petit effet scriptaculous. Vu le résultat de mes dernières tentatives...c'est pas encore ça!J'y retourne...
Merci à toi Bul3. Bonne journée!
gabi26
Messages postés38Date d'inscriptionjeudi 19 mars 2009StatutMembreDernière intervention12 avril 2009 4 avril 2009 à 14:37
Ben jusque là c'était le problème car la requête ne s'arrêtait pas.
J'ai donc écrit
[# J'appelle ma page] (ai rajouté le dièse)
Du coup l'erreur s'affiche et Firebug dit
"tester is not defined" et m'annonce la ligne #(ligne1), autrement dit le dièse fausse la requête je le crains.
Je n'arrive pas à interrompre la requête une fois l'erreur survenue. Même avec un simple alert. Rien ne s'affiche. Je vois juste en bas à droite de l'écran que Firebug note une erreur et poursuit sa course sans l'afficher.
Quoi qu'il en soit j'aimerais utiliser prototype pour pouvoir utiliser la bibliothèque scriptaculous et rafraichir un div sur un petit effet appear ou BlindUp. A ce jour je ne peux qu'appeler un div déjà contenu dans la même page. Je ne peux pas appeler de page extérieure. Comme je n'y arrivais pas j'ai essayé avec un script tout simple. mais il ne marche pas quand intégré dans mon index.php. Ké-blô!
Si z'avez une piste...
merci d'avance. Bon week-end.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 4 avril 2009 à 14:53
bon... on mélange tout là....
>>tester is not defined
ça veut dire qu'il ne trouve pas la fonction
ce que tu nous donnes devrait peut-être fonctionner...
si tu nous montres c'est bien réellement ce que tu testes
( hors prototype, que je ne connais pas et ne veux surtout pas connaitre )
même si je préfère :
[javascript:void(tester()); J'appelle ma page]
ou mieux
quitte à mettre du css pour ressembler à un lien
mais bon....
>>car la requête ne s'arrêtait pas.
la requête ?? euh ?? le javascript, ça oui...
mais rien n'empêche de regarder la console d'erreurs