Comportement : Ouvrir une Popup

Mammouth du PHP | 545 Messages

14 déc. 2007, 20:30

Salut,

Depuis ce midi, j'essaye d'ouvrir une pop-up quand on clique sur une photo ... pour l'avoir en plus grand

Déjà, je suis nul part en JS et j'ai vraiment besoin d'un coup de main pour cette page-ci dans l'onglet 'Parcours', j'aimerai agrandir le profil dans une pop-up!

Pour cela, voici ce que j'ai déjà fait en code:
<script language="javascript" type="text/javascript">
function open_Window(theURL,winName,features) {
    window.open(theURL,winName,features);
    }
</script>

<form action="" method="post">
<?php
    $path = realpath('.') . '/components/com_classement/course/';
    $photo = 'p_'. $epreuve->lastname . '.gif';
    echo '<tr><td><h1>' . _PROFIL . '</h1></td></tr>';
          
    if (!file_exists($path . $photo)) {
        $message = _NOPROFIL;
        } else {

        $message = '<img src="/components/com_classement/course/' . $photo . '" width="100%" height="150" title="' . 'Cliquez pour agrandir' . '" onClick="open_Window(' . $path . $photo . ',' . $epreuve->epreuve . ', scrollbars=yes,resizable=yes,width=500,height=400)">';
        }
        echo '<tr><td>'. $message . '</td></tr>';
?>
</form>
Mais lorsque je clique sur le profil, j'ai un message d'erreur:
Erreur : invalid flag after regular expression
Fichier source : http://www.kain-buyere.be/index.php?opt ... reuve&id=2
Ligne : 1, Colonne : 12
Code source :
open_Window(/home.2/kainbuye/www/components/com_classement/course/p_kainoise.gif,La Kainoise, scrollbars=yes,resizable=yes,width=500,height=400)
Alors, y-a-t-il quelqu'un qui pourrait me venir en aide ?

D'avance merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

14 déc. 2007, 21:08

Si tu regardes bien ton code source tu dois avoir des chaines de caractères sans les délimiter
en paramètre de la fonction open_Window().
Ajoutes des apostrophes échappées "\'" pour correspondre entre php et js
'... onClick="open_Window(\'' . $path . $photo . '\',\''. $epreuve->epreuve .'\',\'scrollbars=yes,resizable=yes,width=500,height=400\' )';

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 881 Messages

14 déc. 2007, 23:04

Tu peux aussi simplifier la chose en ajoutant Target="_blank" à tes liens.

Cependant, n'oublie pas que les logiciels bloquent maintenant à peu près tous les pop-up. La solution de passe par un "onclick" est bonne pour cela, mais elle est délicate, comme tu le vois.
Soyez artisans de paix

Mammouth du PHP | 1511 Messages

14 déc. 2007, 23:10

Autre chose, le chemin de ta photo est le chemin absolu du fichier sur le disque dur du serveur.
Attention a cela ;)

Mammouth du PHP | 545 Messages

15 déc. 2007, 00:38

Salut à tous et merci de vous êtes penché sur mon cas !
Autre chose, le chemin de ta photo est le chemin absolu du fichier sur le disque dur du serveur.
Attention a cela ;)
Peut-on m'en dire un peu plus ? N'étant pas programmeur de formation, je fais mon apprentissage sur le tas et je ne connais malheureusement pas tout ce que je devrais !
Si tu regardes bien ton code source tu dois avoir des chaines de caractères sans les délimiter
en paramètre de la fonction open_Window().
Ajoutes des apostrophes échappées "\'" pour correspondre entre php et js
C'était bien cela ... j'ai la popup qui s'ouvre avec l'image mais j'ai un message d'erreur:
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIStringBundle.GetStringFromName]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://vrs/content/vrsOverlay.js :: <TOP_LEVEL> :: line 55" data: no]
Qu'est-ce que je dois y comprendre ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 déc. 2007, 01:13

Montre nous le code source généré

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

15 déc. 2007, 01:30

Montre nous le code source généré
Ben, je suis désolè pour la longueur ... ici !

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 déc. 2007, 02:36

Beurk... :lol:

Tu as une fonction open_Window() qui attend 3 paramètres tu ne lui en passe que 2 :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

15 déc. 2007, 10:21

Ok, j'avais enlevé des trucs 'scrollbars=yes,resizable=yes' ... maintenant, si je veux les ajouter ces 2 paramètres, que dois-je mettre dans ma fonction ?
<script language="javascript" type="text/javascript">
function open_Window(theURL,winName,features) {
	window.open(theURL,winName,features);
	}
</script>

<form action="" method="post">
<?php
	$path = realpath('.') . '/components/com_classement/course/'; 
	$photo = 'p_'. $epreuve->lastname . '.gif'; 
	$url = 'http://www.kain-buyere.be/components/com_classement/course/' ;
	echo '<tr><td><h1>' . _PROFIL . '</h1></td></tr>';
		   
	if (!file_exists($path . $photo)) {
		$message = _NOPROFIL;
		} else {
		$message = '<img src="/components/com_classement/course/' . $photo . '" width="100%" height="150" title="' . _CLICGRAND . '" onClick="open_Window(\'' . $url . $photo . '\',\''. htmlentities($epreuve->epreuve, ENT_QUOTES) .'\',\'scrollbars=yes,resizable=yes\' )">';
		}
		echo '<tr><td>'. $message . '</td></tr>';
?>
</form>
J'ai déjà apporter quelques modifications mais que dois-je mettre comme argument pour en avoir 4 ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 déc. 2007, 15:40

Les fonctions js marchent exactement de la même manière que les fonction php.
function maFonction(param1, param2,...)
{}
appel de la fonction
maFonction(param1, param2,..)
suffit d'ajouter le 4ème paramètre à la fonction et son appel

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 545 Messages

16 déc. 2007, 00:24

Re,

J'ai ajouter un 4e argument mais j'ai toujours une erreur dans la console d'erreur de FF
Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIStringBundle.GetStringFromName]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: chrome://vrs/content/vrsOverlay.js :: <TOP_LEVEL> :: line 55" data: no]
Et franchement, je ne sais pas quoi en penser !

Merci pour le coup de main déjà donné
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 déc. 2007, 01:17

sans voir les changement effectués on ne peut pas dire grand chose :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

16 déc. 2007, 01:22

Les fonctions js marchent exactement de la même manière que les fonction php.
Attention ce n'est pas tout à fait vrai : les paramètres des fonctions JS sont toujours facultatifs. Si on n'indique pas les paramètres à partir du Xème, la fonction reçoit simplement des valeurs de type undefined.
En l'occurrence tous les paramètres de window.open (et donc de open_Window, qui n'en est qu'un alias, et dont on peut se demander la raison d'exister...) sont facultatifs, sauf le premier il me semble.

Mammouth du PHP | 545 Messages

16 déc. 2007, 09:49

Salut,
sans voir les changement effectués on ne peut pas dire grand chose :?
Ce sont des bricoles de mises en page ... rien à voir avec la fonction JS.

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Mammouth du PHP | 545 Messages

18 déc. 2007, 01:25

Je suis arrivé à un certain résultat (acceptable) mais j'aimerai limiter le nombre de page ... j'ai vu que l'on pouvait créer une popup tout dans le code JS ici et j'essaye en vain de la transposer dans mon code !
Voici mon code JS:

Code : Tout sélectionner

function onLoad() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); //var geoXml = new GGeoXml("http://www.runningho.be/jho/kml/Kainoise.kml"); var geoXml = new GGeoXml("http://www.runningho.be/jho/kml/acrho.php?parcours=21"); map.addOverlay(geoXml); map.setCenter(new GLatLng(50.66, 3.37), 13); } } function carte(fichier,winName){ newpage=open('',"newpopup","left=30,top=20,scrollbars=yes,resizable=yes"); newpage.document.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'); newpage.document.write('<html><head><title>' + winName + '</title></head>'); newpage.document.write('<body onload="onLoad()"><div id="map" style="width:100%;height:100%;"></div></body></html>'); }
En fait, je pense que onload="onLoad()" ne se fait pas !

Peut-on m'aider ?

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!