Vous n'êtes pas identifié. Veuillez vous connecter ou vous inscrire.


Ecrire une réponse

Ecrire une réponse

Composez et envoyez votre nouvelle réponse

Vous pouvez utiliser : BBCode Images Binettes

Les champs marqués %s doivent être remplis avant d'envoyer ce formulaire.

Information obligatoire pour les invités


Information obligatoire

Revue du sujet (plus récents en tête)

32

Tu devrais en profiter pour améliorer mon code. Passez tout un code html en argument à une fonction me paraît assez laid.
Tu peux tout au bien passer une variable dont la valeur sera ce fameux code html.
Et mieux, si c'est possible générer automatiquement le code HTML dans la fonction javascript que tu appelles en passant en paramètre uniquement les valeurs dynamiques (celles qui changent en fonction des appels).
En faisant cela, tu résoudras à coup sûr ton problème de chaîne de caractère.
Bon courage wink

31

merci pyrex,
un vieux schnock c'est tetu héhé
l'appli est rendue a 99.99%
les phases de test sont en cours avec de petits ajouts.
le seul petit truc est la difference d'affichage entre IE et FF.
pour une fois que IE affiche correctement.
bonne journee

30

Bonsoir,

Les <-- et -->  ne se trouvaient pas dans les premières versions.

Heureux que le problème soit résolu ! Félicitations pour ta ténacité !

29

Pyrex a écrit:
infobarquee a écrit:

j'ai reussi enfin a afficher l'infobulle avec le dernier script.
il suffisait simplement de retirer le <-- et --> de chaque cote du <script>.

par contre les retours chariots ne font pas afficher l'infobulle.
exemple :
temps nuageux----> infobulle affichee

temps
nuageux---> pas affiche

c'est ce que je me tue de t'expliquer déjà depuis un bon bout de temps ...

infobarquee a écrit:

je vais donc rajouter une fonction pour les annuler

ou les remplacer tout simplement par la balise <br/>.

deja il fallait afficher les infobulles, le truc bete qui je pense a echappe a tout le monde, le coup des <-- et --> qui revient a mettre des // en php pour neutraliser un texte.

apres la redefinition des <br/> dans le texte.
cette histoire de retour chariot est maintenant finit avec le rajout de fonction en php.
je le met car ca peut servir a d'autre :

$texteamodifier=str_replace("\n","",$texteamodifier);
$texteamodifier=str_replace("\r","<br>",$texteamodifier);

ce qui fait un saut de ligne en remplacant les <br/> dans l'infobulle et tout fonctionne maintenant.

- reste a policher la présentation qui etait un peu a la ramasse.
- faire tester par un lambda au QI de blonde (desole pour elle) qui va cliquer n'importe ou et n'importe comment.
- faire les modifs si necessaire.
- mettre en ligne en esperant que le server va supporter la charge car du monde attend cette appli.

et surtout a vous dire merci pour le coup de main, meme si la comprehension fut laborieuse de temps en temps.

bonne soiree

28

infobarquee a écrit:

j'ai reussi enfin a afficher l'infobulle avec le dernier script.
il suffisait simplement de retirer le <-- et --> de chaque cote du <script>.

par contre les retours chariots ne font pas afficher l'infobulle.
exemple :
temps nuageux----> infobulle affichee

temps
nuageux---> pas affiche

c'est ce que je me tue de t'expliquer déjà depuis un bon bout de temps ...

infobarquee a écrit:

je vais donc rajouter une fonction pour les annuler

ou les remplacer tout simplement par la balise <br/>.

27

j'ai reussi enfin a afficher l'infobulle avec le dernier script.
il suffisait simplement de retirer le <-- et --> de chaque cote du <script>.

par contre les retours chariots ne font pas afficher l'infobulle.
exemple :
temps nuageux----> infobulle affichee

temps
nuageux---> pas affiche

je vais donc rajouter une fonction pour les annuler

26

entre vieux scnock on devrait se comprendre alors héhé.
d'accord avec toi pour que ca fonctionne pour les visiteurs, c'est pour ca que l'appli n'est pas en ligne officiellement car elle ne fonctionne pas a 100%
je ne fais que chercher les erreurs depuis hier, d'ou ma demande d'aide ici.
je ne rajoute rien bien au contraire, mais le javascript n'est pas ma tasse de the.
je ne fais que changer et essayer d'autres trucs pour que ca fontionne partout et avec tout navigateur.
je viens de laisser qu'une seule obs sans retour chariot et c'est la meme chose.
sachant qu'une obs en generale se compose comme ca au minimum :
temps nuageux toute la nuit avec retour des averses.......
temperature : 19C
temps : nuageux
vent : ESE
force : 25km/h
pression :1025hpa
humidite : 95%
pluie : 25mm
etc....

je ne peux pas empecher les retours chariots dans le formulaire des obs. et encore moins dans l'affichage de l'obs sinon on ne comprend plus rien.
c'est un peu pour ca que dans ma bdd, l'obs est en text et non varchar, car une obs peut contenir pres de 500 caracteres suivant la meteo et la depasser surtout en ce moment.
je vais voir dans le code javascript ce qui peut clocher.
si vous avez une lueure de solution ce serait avec plaisir.

25

infobarquee a écrit:

cela reviendrait a dire que ce code javascript ne supporte pas les balises  html comme <br></br>.
mais alors pourquoi l'autre ne fonctionne pas aussi?? (indexsos.php)

dans le div, il y a bien onmouseover=\"afficher_bulle('<br>$date<br/>
que faut il rajouter a ce moment la?
onmouseover=\"afficher_bulle(\'<br>$date<br/>

j'ai retire les \ pour voir, ca provoque une erreur et page blanche.
en local, aucun pb avec IE et FF, c'est la ou je comprend plus.

Non, les balises sont bien autorisées : ils ne sont que des caractères dans une chaîne.

Ce qui pose problème, ce sont les caractères qui font passer à la ligne !

24

Bonsoir,

En ce qui me concerne il est clair et évident que l'erreur principale est le "unterminated string literal" dans l'appel d'afficher_bulle() qui empêche l'appel d'aboutir. La preuve : en mettant quelque chose de simple (ou rien du tout) comme paramètre, l'appel fonctionne. Que cela fonctionne chez toi, tant mieux, la déclaration du <div> ne prends qu'une (très longue) ligne. En tournant sur le serveur, cette déclaration se retrouve sur plusieurs lignes avec des caractères carriage return et line feed (et peut être d'autres) dans le premier paramètre passé à afficher_bulle(). La conclusion est évidente alors ...

Après, il peut encore y avoir d'autres erreurs, mais pour les trouver, il faut commencer à éliminer celle-ci.

Si tu me le permets, trois conseils d'un vieux schnock :

* que cela fonctionne chez toi n'intéresse personne et ne signifie rien; il faut que les visiteurs puissent voir le résultat

* l'ordinateur à toujours raison : si cela ne marche pas, commencez à chercher partout sans te dire que cela devrait marger et qu'il n'y a pas d'erreurs

* pour trouver des erreurs, au lieu de rajouter des éléments, supprimez des éléments, réduisez le tout à sa plus simple expression jusqu'à ce que cela marche et après seulement, remettez un à un les éléments supprimés

23

cela reviendrait a dire que ce code javascript ne supporte pas les balises  html comme <br></br>.
mais alors pourquoi l'autre ne fonctionne pas aussi?? (indexsos.php)

dans le div, il y a bien onmouseover=\"afficher_bulle('<br>$date<br/>
que faut il rajouter a ce moment la?
onmouseover=\"afficher_bulle(\'<br>$date<br/>

j'ai retire les \ pour voir, ca provoque une erreur et page blanche.
en local, aucun pb avec IE et FF, c'est la ou je comprend plus.

22

Voici les erreurs javascript :

Je suis sous Firefox, le code javascript exécuté est :
if(ns6) {

    var bulle = document.getElementById('bulle');

}
Or document.getElementById('bulle'); renvoie NULL. Tu n'as aucun elément dont l'ID est bulle !

unterminated string literal
http://stationmeteo.lescigales.org/forum/carte/
Line 1

Cet appel semble incorrect (simple quote au lieu de guillemets ? caractères incorrects ?) :
onmouseover="afficher_bulle('<b>2009-01-29 01:01:30<br/>Mesquer : 44420<br/>bruine toute la journee
vent SE force 4km/h
pluie 8.8mmm
humidite : 95%
tactu : 7.8C</b> ','white',event)"

Pour les mêmes raisons que la première erreur.

A tester sous IE...

edit: je n'ai testé que le code de ton site pas ce que tu as posté ici.

21

si je compare le indexsos.php sur le local et le server,
a part le fait qu'il n'y a pas de retour a la ligne sur le local apres le </div> entre les 2 obs, je ne vois pas de differences.
c'est celui qui contient le script en entier.

pour celui ou le javascrpt est dans bulle.js:
pour le index.php, il y a des differences evidemment afin de trouver une solution sur le server pour afficher les bulles.
voici le code du .js et dits moi s'il y a une erreur :

//Définition de variables en fonction du navigateur
var ie = (document.all)? true:false;
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById)? true:false;

//Incrustation du div "bulle" (display: none = non affiché)
//Vous pouvez librement modifier le style de bordure de la bulle
if ((ns6) || (ie)) {
      document.write('<div id="bulle" style="position:absolute; top: 0; left: 0; border: 3px solid #111; padding: 9px; display: none;"></div>');
} else if (ns4) {
      document.write('<layer id="bulle" top=0 left=0></layer>');
}

if(ns6) {
    var bulle = document.getElementById('bulle');
}
else if(ie) {
    var bulle = document.all['bulle'];
}
else {
    var bulle = document.layers['bulle'];
}

var bulleStyle = bulle.style;

//Fonction d'affichage de la bulle
function afficher_bulle(texte, couleur, event) {

    //Lignes utiles si vous imbriquez des éléments devant supporter des bulles
    if(ie) {
        window.event.cancelBubble = true;
    }
    else {
        event.stopPropagation();
    }
   
    bulle.innerHTML = texte;
    bulleStyle.backgroundColor = couleur;
   
    //On suit les mouvements de la souris
    if(ie) {
        bulle_mouseMove();
    }
    else {
        bulle_mouseMove(Event);
    }

    document.onmousemove = bulle_mouseMove;
    bulleStyle.display = 'block';
   
}

//Fonction de positionnement de la bulle en fonction des mouvements du curseur
function bulle_mouseMove(e) {

    if(ie) {
        //Prend en compte le scroll de la page
        if(document.documentElement.clientWidth>0) {
            bulle_x = event.x + document.documentElement.scrollLeft;
            bulle_y = event.y + document.documentElement.scrollTop;
        }
        else {
            bulle_x = event.x + document.body.scrollLeft;
            bulle_y = event.y + document.body.scrollTop;
        }
    }
    else {

        bulle_x = e.pageX;
        bulle_y = e.pageY;
    }
   
    if(!isNaN(bulle_x) && !isNaN(bulle_y)) {
        bulle_x += 5;
        bulle_y -= 25;

        bulleStyle.left = bulle_x + 'px';
        bulleStyle.top = bulle_y + 'px';
    }
}

//Fonction qui fait disparaître la bulle
function masquer_bulle() {
    document.onmousemove = null;
    bulleStyle.display = 'none';
   
}

//Fonctions qui augmente le z-index (indice de profondeur) de la bulle
function up_zindex_bulle() {
    bulleStyle.zIndex = 200;
}
//Réinitialise le z-index
function raz_zindex_bulle() {
    bulleStyle.zIndex = '';
}

20

Bonjour,

Je suis resté sur ton premier code HTML.

Je me suis crée en local chez moi un fichier bulle.js avec, là dedans, deux fonctions afficher_bulle() et masquer_bulle(). Afficher_bulle ne contient qu'une ligne : alert("on mouseover"); masquer_bulle(), elle ne contient qu'une seule ligne : alert("onmouseout").

Avec le code HTML tel que je pouvais le récupérer, afficher_bulle() ne marchait pas, mais masquer_bulle() se manifestait.

En enlevant les paramètres dans l'appel de la fonction afficher_bulle(), celle-ci montre le message désiré.

Il y a donc manifestement une erreur dans les paramètres passés dans l'appel d'afficher_bulle().

Et cette hypothèse se confirme quand on va comparer le code en local chez toi et le code donné par le serveur des cigales ... à toi de trouver où se situent ces différences ... (et d'où elles viennent).

19

"""""En testant chez moi en local, (avec un simple alert() dans les fonctions afficher_bulle() et masquer_bulle() dans un fichier js externe) cela marche quand le paramètre passé dans l'appel de la fonction afficher_bulle() est réduit à une chaîne de caractères sans <b>, <br> et retour chariots ... à notre ami maintenant de chercher ce qui ne marche pas dans la chaîne de caractères qu'il passe ... (on va quand même le laisser découvrir quelque chose ...)""""

tu pourrais traduire svp, ou alors j'ai vraiment des pb de comprehension depuis ce matin. smile)
....................
""""La fonction masquer_bulle(), elle, marche tout le temps, mais bon, quand il n'y a pas de bulle affichée, on ne voit pas qu'elle soit masquée ...""""

si elle s'affiche en local, pourquoi pas sur le server??
avec 3 scripts differents, plus 2 autres que j'ai pris sur le net avec leur page d'exemple, le resultat est le meme. local OK, server KO
.....................
""""Je sais que cela n'a rien à voir avec le serveur, mais je doute fort que cela marchait en local chez notre ami .... (ou bien, sa base de données ne s'est pas transféré sur lescigales comme il faut).""""

je viens de creer un autre membre dans ma carte et sa position s'affiche bien avec un logo arc en ciel mais toujours pas de bulle et aucun <br> ou autre dans le commentaire : temps nuageux depuis ce matin
l'info est bien prise en compte, la preuve : http://stationmeteo.lescigales.org/forum/

pour verifier si ca fonctionne correctement chez moi en local (car tu commences a avoir des doutes, on dirait et que tu crois que je balance un code pompe ailleurs pour qu'on le corrige ici), pas de pb, voici l'adresse de mon local avec les 2 codes differents :
http://infobarquee.gotdns.org/observati … rum/carte/
http://infobarquee.gotdns.org/observati … dexsos.php

Pour info, meme sur le forum de codes sources, les gars ne voient pas d'erreurs dans mon code.
je ne mets en doute la parole de personne, car l'aide de tout le monde est precieuse et permet aussi d'aider les autres.
merci encore

18

Bonjour,

En testant chez moi en local, (avec un simple alert() dans les fonctions afficher_bulle() et masquer_bulle() dans un fichier js externe) cela marche quand le paramètre passé dans l'appel de la fonction afficher_bulle() est réduit à une chaîne de caractères sans <b>, <br> et retour chariots ... à notre ami maintenant de chercher ce qui ne marche pas dans la chaîne de caractères qu'il passe ... (on va quand même le laisser découvrir quelque chose ...)

La fonction masquer_bulle(), elle, marche tout le temps, mais bon, quand il n'y a pas de bulle affichée, on ne voit pas qu'elle soit masquée ...

Je sais que cela n'a rien à voir avec le serveur, mais je doute fort que cela marchait en local chez notre ami .... (ou bien, sa base de données ne s'est pas transféré sur lescigales comme il faut).



Currently used extensions: pun_poll, pun_admin_manage_extensions_improved. Copyright © 2008 PunBB