Probleme javscript + php

Résolu
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010 - 18 oct. 2005 à 13:33
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 19 oct. 2005 à 17:45
Bonjour à tous !

J'ai un code simple pour agrandir une image dans une popup qui se redimensionne a la taille de cette image (j'ai posé la question dans le forum javascript mais ils me disent de venir ici) :

<SCRIPT LANGUAGE="JavaScript">
<!--
function PopupImage(img) {
titre="Agrandissement";
w=open("",'image','width=400,height=400,toolbar=no,scrollbars=no,resizable=no');
w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>");
w.document.write("<SCRIPT language=javascript>function checksize() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+10,document.images[0].height+30); window.focus();} else { setTimeout('checksize()',250) } }</"+"SCRIPT>");
w.document.write("");
w.document.write("\");
w.document.write(\"+img+"' border=0 alt='Mon image'>");
w.document.write("
");
w.document.write("</HTML>");
w.document.close();
}
//-->
</SCRIPT>
Et mon liens est le suivant :

[javascript:PopupImage('produits/imprimante/<? echo $data[type] ?>/<? echo $data[nom] ?>.jpg') Agrandir]

Mon probleme c'est que lorsque je clique ce liens pour agrandir, ca ne fonctionne pas il y a une erreur a cause du PHP ... Si je met le chemin de l'image en dur ca fonctionne.

Pourriez vous m'aider ?
Antho

Antho

20 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 20:49
Voilà qui est mieux... merci pour l'erreur.



Bon, on voit que la ligne qui bug est bonne (%27) sauf que pour
l'utiliser, javascript interprète le %27 et le retranscrit en ' sans
demander notre avis... d'où le bug colone 38 (l'apostrophe étant colone
37)



Essaye addslashes($data['type']); au lieu de urlencode($data['type']);



Tu devrais avoir écrit PopupImage('produits/imprimante/jet d\'encre/bij_2300.jpg');

(PS : mets un point virgule à la fin, même si dernière commande)



Et là, j'ai espoire...
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 oct. 2005 à 13:41
hello,



et grrr...

Les index associatifs d'un tableau, en php, doivent être délimités par de simples cotes!



[javascript:PopupImage('produits/imprimante//.jpg') Agrandir]



et pour être sûr :



echo '[javascript:PopupImage(\'produits/imprimante/',$data['type'],'/',$data['nom'],'\'); agrandir]';
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 13:44
echo $data[type]



=> l'erreur n'est-elle pas "NOTICE : undefine constante type assumed 'type' ?



ton tableau $data est indéxé par des chaînes de caractères... utilise

echo $data['type'] (et idem pour l'autre echo)
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 13:59
Merci de répondre :)

Non l'erreur n'est pas NOTICE : undefine constante type assumed 'type' .

malalam : Merci de ton aide, mais ce ne fonctionne toujours pas dans la barre de status il y a marqué "erreur sur la page" dès que je clique le liens agrandir.

enfait, dans ['type'] c'est une catégorie qui dans le liens sert de dossier par exemple :

Le liens devrait etre a la fin : produits/imprimante/jet d'encre/image.jpg 'type' étant jet d'encre et 'nom' étant le nom de limage.

Antho
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 14:05
Ah ok! Alors deux choses :



1*

>> dans la barre de status il y a marqué "erreur sur la page"

Alors, c'est une erreur de javascript. Si tu utilisai FireFox tu aurais une information plus fourni sur cette erreur..



2*

produits/imprimante/jet d'encre/image.jpg N'EST PAS UNE URL VALIDE !!!

Pour ce faire, utilise <? echo urlencode($data['type']) ?>





Et dis nous quoi il adviendra alors...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 oct. 2005 à 14:15
Et en plus, jet d'encre comporte une apostrophe.

Si tu regardes ton source html, tu verras tout de suite un problème
dans l'appel de ta fonction js : l'apostrophe de jet d'encre interfère
avec les apostrophes délimitant les paramètres à passer à ta fonction
js.
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 18:08
Alors, il semblerais que le urlencode convertisse le ' de jet d'encre en url valide, cependant l'espace entre jet et encre devient jet+encre

Vous avez une autre solution ?? :)

Merci beaucoup J_G, on s'en approche :p

Antho
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 18:20
ca deviens jet+d'encre pardon (jet+d%27encre)

Antho
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 18:30
Et bien ??? quel est le problème ?

Que les pasces deviennent des '+' et la signification que tout va bien, que le nom de ton url est bien encodé.



Cela ne marche toujours pas !!! Mmm...



C'est vrai que j'ai plus l'habitude de voir des %20 pour les espaces. Pour cela, tu as la vielle fonction rawurlencode() .



Refais un essai avec ça... PS : vérifie que ton répertoire "jet
d'encre" existe et surtout sa dénomination précise (jet_dencre ou
Jet_dEncre ou ...)
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 18:47
Bon le rawurlencode() fonctionne et passe le + en %20 mais voila, encore une erreur pourtant l'url est bonne ...

Le répertoire jet d'encre existe bien et meme saisie en dur l'url provoque une erreur ......

[javascript:PopupImage('produits/imprimante/<? echo rawurlencode($data['type']) ?>/<? echo $data['nom'] ?>.jpg') Agrandir] c'est le liens que jutilise je vais essayer echo '[javascript:PopupImage(\'produits/imprimante/JE DOIS METTRE QUOI au lieu de ',$data['type'],'/',$data['nom'],'\'); agrandir]';

Antho
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 19:50
"et meme saisie en dur l'url provoque une erreur"



QUELLE EST CETTE ERREUR ???
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 20:00
le code ne s'exécute pas tout simplement mais seulement une fois le liens cliqué ...

Antho
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 20:21
... snif ...



Alors, je te propose un petit truc pas mal du tout :

* va à cette adresse : http://validator.w3.org/

* propose ton script à la validation (via l'url ou tu fais
copier-coller la source de la page HTML générée par ton script PHP dans
la zone prévue à cet effet)

* Tu auras certainement un paquet d'erreur (comme tout le monde à la
première soumission d'une page...) Trouves celle(s) qui se rapporte(nt)
au lien du bug



Et dis quoi-c'est l'erreur... STP!
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 20:32
Erreur : missing ) after argument list
Fichier Source : javascript:PopupImage('produits/imprimante/jet%20d%27encre/bij_2300.jpg')
Ligne : 1, Colonne : 38
Code Source : PopupImage('produits/imprimante/jet d'encre/bij_2300.jpg')

C'est l'erreur que me donne Firefox car le w3 validator ne trouve pas d'erreur a ces lignes :s tan pis si on ne trouve pas c'est dommage mais bon :s j'aurais bien aimer ce script :s

Antho
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
18 oct. 2005 à 22:23
J_G tu déchire !!!!!! MMMMMEEEEEEEERRRRRRRRCCCCCCCCCCCCCIIIIIIIIIIIIIIIIIIIIIII

Super ! fantastique ! je sais pas comment te remercier ! merci beaucoup !! :D

Antho
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
18 oct. 2005 à 22:39
Ben voilà !!! Enfin !



Garde FireFox pour développer (ou installe la suite Visual de Moft...
non garde FireFox) Car sans le message d'erreur... j'amais ça ne
l'aurait fait.



A+,
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 oct. 2005 à 08:58
Mouah, j'l'avais dit, que l'apostrophe de jet d'encre poserait quand même problème ;-)

Je vois que vous avez passé une bonne soirée, pendant que gt peinard à la maison devant mes carbonara et un dvd ? ;-)
0
Anthotill Messages postés 127 Date d'inscription mardi 19 août 2003 Statut Membre Dernière intervention 13 mars 2010
19 oct. 2005 à 16:13
lol on savais tous que c'était un probleme, encore fallait il pouvoir le résoudre :p ca ma pas empeché de manger ma pizza MDR

Antho
0
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 oct. 2005 à 16:37
Salut malalam,



Tu savais toi qu'en passant une chaine de caractère "encodée-url" en
paramètre d'une fonction javascript, l'encodage était automatiquement
interprété ?



(Finalement, la chaîne n'est pas encodée, c'est son écriture dans la page HTML qui l'est !)





Cc : Le ouaib, c'est vraiment de la programmation galère. Un méli-mélo
de langages hétérogènes, sans parler de l'incohérances totale entre les
différentes plateformes interprétant ces langages (condition
structurelle du Web), une multitudes de couches logiciels et
protocolaires, des tones de normes à spécifier et à respecter, des
contraintes régionales (langues, heures, normes, claviers, ...), un
graphisme beaucoup plus recherché que pour toutes les autres appli, un
énorme goulot d'étranglement appelé "Internet", une sécurisation des
données quasi nulle à cause du mêm Internet, un réseau de "testeur"
extrèmement exigents (autre nom pour "pirates")... Et tout ça pour
recevoir l'ingratitude des codeurs d'applications "en dure" (C++, ASM,
TP, ...).



Bref, la création de Webgiciel n'est pas un jeu pour autistes de l'informatique.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 oct. 2005 à 17:45
Tu savais toi qu'en passant une chaine de caractère "encodée-url" en
paramètre d'une fonction javascript, l'encodage était automatiquement
interprété ?



Bah nan, c'est pour ça que je suis bien content d'avoir mangé mes carbo à la place ;-)



lol on savais tous que c'était un probleme, encore fallait il pouvoir
le résoudre :p ca ma pas empeché de manger ma pizza MDR



Elle était à quoi....?
0
Rejoignez-nous