ajax avec IE et script-aculo-us

Mammouth du PHP | 601 Messages

20 janv. 2007, 04:35

Bonjour,
je cherche à faire de l'ajax avec ce framework, mais sa fonctionne que sous FF et même bien, sous IE sa bug et je n'arrive pas à comprendre pour quoi ?
http://creatif-web.be/developpeur/class_effet_ajax.php

Code : Tout sélectionner

<script> var ajax = new Ajax.Updater( 'datestr', // DIV id (XXX: doesnt work?) 'http://creatif-web.be/developpeur/salut_php.php', // URL { // options method:'get', parameters:'var1=val1&val2=var2', onComplete: showResponse }); function showResponse(req) { $('datestr').innerHTML = req.responseText; new Effect.toggle('datestr','BLIND'); } </script> date is now: <div id="datestr" style="display:none;">n/a</div>
J'ai pris lexemple du site officiel :
http://wiki.script.aculo.us/scriptaculo ... ax.Request
Merci d'avance -:)²
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 janv. 2007, 12:19

Je ne connais pas le framework, mais s'il ne l'interprête pas, je ne suis pas certain que la syntaxe $('datestr') soit très répendue en javascript...

document.getElementById('datestr') me semblerait plus adéquat.

Ceci dit, pour savoir ce qui ne va pas sous IE clique sur le triangle jaune qui doit apparaitre en bas à gauche dans la barre d'état en cas d'erreur. Tu auras une fenêtre contenant le message d'erreur et tu pourras plus facilement voir à quelle ligne elle a lieu :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 601 Messages

20 janv. 2007, 15:19

$('datestr')
sa remplace document.getElementById(); et sa fonctionne bien sous ie, la ligne qu'il renvoie ne correspond pas avec l'erreur.

Et même si je la trouve, je vais avoir du mal à la débuguer.
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 janv. 2007, 15:27

ah ? je connaissais pas du tout ... je vais y regarder de plus près :)

Et puis ne sois pas aussi pessimiste, regarde déjà si tu trouves la ligne pour savoir si tu peux la débugger ou pas... au pire si tu sais ce qui ne fonctionne pas, tu peux toujours venir demander de l'aide en nous donnant la ligne et les paramètres qui posent problème ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 601 Messages

20 janv. 2007, 16:48

Si tu veux regarder de plus près je te conseil ce document qui est une bonne traduction fr :
http://www.hadrien.eu/scriptaculous/
Regarde à prototype puis ajax dans mon cas tu à trois class prédéfinis.
J'ajouterai que des raccourcis il en existe une bonne dizaine comme $F() pour appeler un objet de formulaire, sa réduit considérablement le code.
Et puis une visite sur le site de l'auteur :
http://script.aculo.us/
Et une documentation plus complète toujours en Français mais de prototype :
http://www.electrolinux.com/traductions ... pe.js.html

j'ai changer mon script pour le mettre dans la page d'index, sa fait plus court à débugger :
http://creatif-web.be/developpeur/index.php
coté serveur "salut_php.php'
<?php
echo 'La date d\'aujourd\'hui avec php '.date('d-m-Y').'   
<br />timestamp d\'aujourd\'hui '.mktime(date('d-m-y'), 'TIMESTAMP'); 
?>
ajax :

Code : Tout sélectionner

<script type="text/javascript"> var ajax = new Ajax.Updater( 'datestr', // DIV id (XXX: doesnt work?) '/developpeur/salut_php.php', // URL { // options method:'get', parameters:'var1=val1&val2=var2', onComplete: showResponse, evalScripts:true }); function showResponse(req) { $('datestr').innerHTML = req.responseText; new Effect.toggle('datestr','BLIND'); } </script> <p>2/ <div id="datestr" style="display:none;">hahaha</div></p>
l'erreur dans IE n'existe plus et je n'ai aucun moyen de connaitre l'erreur sans débuggeur enfin là je n'est même plus le triangle jaune, mais sur les autres pages précisent qu'il me manque un objet donc non déclaré pour IE ?
Mais je vais changer et mettre sa sur un onclick...
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

20 janv. 2007, 17:04

voici un script qui fonctionne mais sur un form :
http://creatif-web.be/developpeur/ajax_prototype.php

Code : Tout sélectionner

<script> function getHTML() { var url = '/developpeur/salut_php.php'; var pars = 'someParameter=ABC'; var myAjax = new Ajax.Updater( {success: 'placeholder'}, url, {method: 'get', parameters: pars, onFailure: reportError}); } function reportError(request) { alert('Sorry. There was an error.'); } </script> <input type=button value=GetHtml onclick="getHTML()"> <div id="placeholder"></div> <p>2/ <div id="datestr" style="display:none;">hahaha</div></p>
Enfin sous ie le timestamp ne se recharge pas, un truc de fou ça.
Comme tu le dit restont peace and love ;)
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

20 janv. 2007, 17:20

j'ai trouvé quelque chose
http://creatif-web.be/developpeur/ajax_prototype_1.php
Mais je n'arrive âs à accorder les effets sans lancer deux appel ?
Mais sa ne fonctionne plus sous FF
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

20 janv. 2007, 17:31

Pour ceux que sa interresse j'ai trouvé :
http://creatif-web.be/developpeur/ajax_prototype_1.php
Efin les effets fonctionnent, il me reste à les coordonnés pour ne pas qu'ils se dédoublent...
Je continue sur ce fil si je bug

Code : Tout sélectionner

<script> function getHTML() { var url = '/developpeur/salut_php.php'; var pars = 'someParameter=ABC'; var myAjax = new Ajax.Updater( {success: 'placeholder'}, url, { method: 'get', parameters: pars, onFailure: reportError, onComplete: showResponse}); } function showResponse(req) { $('datestr').innerHTML = req.responseText; new Effect.toggle('datestr','BLIND'); } function reportError(request) { alert('Sorry. There was an error.'); } </script> <div onclick="getHTML()" id="dddd">aaaaa</div> <div id="placeholder"></div>
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

20 janv. 2007, 17:38

Mon problème c'est comment stopé l'effet ou evenement pour pas qu'il réapparaisse autrement j'utiliserai d'autre effets.
Je pense qu'il doit bien exister un stop !
edit :
en changeant d'effet sa fonctionne.

Code : Tout sélectionner

new Effect.Appear('datestr',1);
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 601 Messages

20 janv. 2007, 18:05

Chez moi sous ie6 sa ne fonctionnennait pas ?
http://creatif-web.be/developpeur/index.php
J'ai vider mon cache, mes temps et cookies, et sa fonctionne, j'ai dormis dans un cauchemard pour sa ?¿
Le cache Le cache Le cache Le cache Le cache Le cache Le cache
Je vais m'en souvenir de celle là faut VIDER LE CACHE, arf
En faite tout fonctionne :oops:
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"