amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
28 déc. 2007 à 20:10
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
30 déc. 2007 à 15:50
Bonjour,
j'ai un leger probleme de codage :
J'ai d'un coté une BD mysql et de l'autre un page PHP qui liste des enregistrements de la base.
J'ai crée un script pour faire apparaitre une infobulle lorsque la souris passe sur un élément de la liste .
Le probleme, c'est que le débogage de IE me montre que ce script est ok lorsqu'un enregistrement ne comporte pas d'accent ou d'apostrophe.
Par contre dans le cas contraire il me renvoi des erreur ( ')' attendu)
je précise que le script d'info bulle affiche un texte qui est un concaténation de champs de la base.
ex $contenu=$nom.$prenom.$memo;
et je renvoi $contenu à mon script java.
1ere question : comment debuguer
2eme question : sachant que le champ $memo est de type 'longtext' dans ma base, il y a des retours de chariot qui me générent des erreurs (constante chaine non terminée)
comment débuguer
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 déc. 2007 à 20:16
Hello,
tu parles de java, ou de javascript? Parce que c'est TRES différent.
Sinon, je n'ai pas compris ton problème.
Et pour débugger efficacement du JS, je ne peux que conseiller Firebug sur Fierfox. Je n'ai jamais rien trouvé d'aussi performant sur IE (malheureusement).
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 28 déc. 2007 à 23:35
Salut,
A quoi te sert Javascript dans ton histoire ? (et pas Java, donc...)
Sinon, dans ton script PHP tu devrais essayer addslashes() ou stripslashes(), ou un truc dans le genre.
Les retours à la ligne sur Linux ne sont pas les mêmes que sur Windows (et encore différents de Mac) :
- Linux : \n
- Windows : \n\r
- Mac : \r
Faut peut-être en tenir compte dans ton script JS ?
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 29 déc. 2007 à 23:07
En gros tu utilises Javascript pour afficher uniquement une info bulle ?
Et pourquoi ne pas utilise l'attribut title peut être utilisé avec quasiment toutes les balises html ? Pourquoi mettre du JS quand on peut s'en passer ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2007 à 09:39
Non, que je sache, on ne peut pas modifier la mise en page d'un attribut title. De plus, sur les différents navigateurs, cet attribut fonctionne différemment. Sur Firefox, il est très limité et en ligne. IE accepte les retours chariots. Mais bon...title est à réserver pour de petits textes (des titres, quoi ;-) ).
Tu as un problème d'encodage : en quoi sont encodés ta base/table/champ et ta page ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2007 à 11:17
Attends, je viens de relire tes posts :
$contenu=$sujet."
".$note;
<? echo $sujet;?>
c'est vraiment ce que tu as, exactement, dans ton script ?
J'en doute? Fais voir cette partie exacte de ton script.
Ce serait plutôt :
<?php
$contenu=$sujet."
".$note;
echo ''.$sujet.'
';
?>
et pour les retours chariot :
<?php
$contenu=$sujet."
".$note;
echo ''.$sujet.'
';
?>
Pour les accents, je ne comprends pas, tu ne devrais pas avoir ce problème, SAUF si tu récupères ton contenu via Ajax...? Ajax se sert d'UTF_8. Il faut donc faire un utf8_decode() sur son retour.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 30 déc. 2007 à 11:45
si si , le code est ecrit comme indiqué... ce qui peut expliquer le pb ... je testerais.
C'est vrai que j'utilise ajax pour renvoyer des elements
d'ailleur, j'ai une technique pour reconvertir les retour utf8 ;je fais :
ob_start(); au debut de la page
$buffer=ob_get_clean();
$buffer = utf8_encode($buffer);
echo $buffer; a la fin et ça m'affiche le page correctement.
Par contre, j'aimerais avoir une solution plus "élégante".
J'ai beau essayer la technique suivante :
function maj(div,requete){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", requete, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
window.opener.document.getElementById(div).innerHTML = xhr_object.responseText;
}
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2007 à 12:07
Déjà, donc, le code html/php montré est syntaxiquement incorrect, donc.
Ensuite, tu dois faire un utf8_decode() dans le script php exécuté par ta requête Ajax afin de retourer de l'iso.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 30 déc. 2007 à 12:13
Je te donnes mon script, je l'ai modifié :
solution finale pour l'infobulle sans js.... qui marche sur ie et ff (géré par une classe tooltip)
et
ma problematique avec ajax
<? $today=date('Y-m-d');
include ("connection.php");
$retard=mysql_query("SELECT *,DATE_FORMAT(note_date,'%d-%m')as note_date FROM note WHERE note_date < '$today'");
while ($ret=mysql_fetch_array($retard)) {?>
<? $jour=mysql_query("SELECT *,DATE_FORMAT(note_date,'%d-%m-%Y')as note_date FROM note WHERE note_date ='$today' ORDER BY note_heure ASC");
while ($jr=mysql_fetch_array($jour)) {?>
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2007 à 12:27
Le problème ne vient pas de là, mais du script php appelé par Ajax. Ton buffer ne te sert pas à grand chose ici. C'est dans ce script que tu dois renvoyer de l'iso et non de l'utf8.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 30 déc. 2007 à 12:42
j'ai enlevé le buffer.
mon script ajax est inchangé
lorsque j'ajoute une note, la maj du div où s'affiche la liste des notes en cours met les éèà en erreur (carres)
si je reactualise la totalité de la page , les caractères en erreur repassent ok
fichu encodage
pourrais tu me donner un exemple, je crois qu'il y a quelque chose qui m'échappe.