Jump to content
Sign in to follow this  
nomasis

Script d'ouverture de pop up

Rate this topic

Recommended Posts

Hello @ tous,

pour un site en php, j'ai fait un javascript pour faire un pop up au chargement de la front page.

J'ai donc mis un OnLoad dans le body, mais, je n'y avais pas pensé, le script impacte tous les pages si bien que mon pop pup s'ouvre à chaque chargement de page.

Il y a t-il un moyen d'éviter cela d'après vous ?

En appelant ce javascript par un script php qui ne déclencherait QU'À l'ouverture de la page d'accueil.

Merci d'avance

Share this post


Link to post
Share on other sites

Bonjour,

tout simplement, avec un test du genre:

if($_SERVER['PHP_SELF']=='index.php') echo onLoad= ...

pour tester la page actuelle.

Share this post


Link to post
Share on other sites
Bonjour,

tout simplement, avec un test du genre:

if($_SERVER['PHP_SELF']=='index.php') echo onLoad= ...

pour tester la page actuelle.

<{POST_SNAPBACK}>

euh oui...

sauf que je n'ai pas tout compris :D

c'est ça tel que ?

<if($_SERVER['PHP_SELF']=='index.php') echo onLoad="Popup()">

que dois je changer d'autres ?

Edited by nomasis

Share this post


Link to post
Share on other sites

Excuses moi, c'est vrai que j'ai été un peu expéditif :blush:

$_SERVER est un tableau qui contient des informations relatives à la configuration du serveur. Tu as une liste des variables superglobales disponibles ici: tableaux superglobaux

$_SERVER['PHP_SELF'] contient donc l'url du script en train de s'éxécuter: si ta page d'accueil s'appelle index.php et qu'elle se trouve à la racine du serveur, cette variable contient donc 'index.php'.

if($_SERVER['PHP_SELF']=='index.php') -> Si ce test est vrai, alors tu te trouves sur cette page index.php, à la racine du serveur, et dans ce cas, echo onLoad="Popup()" inscrira cette commande ( onLoad="Popup() ) dans la page. Si tu es sur une autre page que index.php, cette commande ne figurera pas dans la page.

Penses bien aux balises php, cela donnes cela:

<?php if($_SERVER['PHP_SELF']=='index.php') echo onLoad="Popup()" ?>

J'espére avoir été plus clair. ;)

Share this post


Link to post
Share on other sites

oui tu as été très clair et je t'en remercie...

c'est ce que j'avais fait mais ça déclenchait une erreur alors je viens de recommencer en me disant que j'avais laisser une espace trainer

j'ai donc recopié texto ton code et c'est pareil.

Pige pas...

Share this post


Link to post
Share on other sites

La balise avant :

<body class="page_bg" OnLoad="startPix();Popup()">

La balise après :

<body class="page_bg" OnLoad="startPix()">

l'erreur :

Parse error: parse error, unexpected '=', expecting ',' or ';' in /var/www/free.fr/0/2/justdigit/templates/rhuk_planetfall/index.php on line 52

Share this post


Link to post
Share on other sites

Oui, je viens de me rendre compte que j'avais oublié des trucs:

<?php if($_SERVER['PHP_SELF']=='index.php') echo 'onLoad="Popup()"' ?>

So on oublies les ' après la commande echo, ça ne peut pas marcher! :fou:

Share this post


Link to post
Share on other sites

ah oui !

là ça plante plus...

mais le popup ne s'ouvre pas non plus.

Share this post


Link to post
Share on other sites
et la balise générée ressemble à quoi ?

<{POST_SNAPBACK}>

ben elle est pas générée

Share this post


Link to post
Share on other sites

Mais tu peut être plus précis ? genre montrer ton code en php et le résultat obtenu ?

Qu'est-ce qui n'est pas généré ? Ta balise body est bien présente ? ou tu utilises php pour générer cette balise ?

Share this post


Link to post
Share on other sites
Mais tu peut être plus précis ? genre montrer ton code en php et le résultat obtenu ?

Qu'est-ce qui n'est pas généré ? Ta balise body est bien présente ? ou tu utilises php pour générer cette balise ?

<{POST_SNAPBACK}>

non : le body est en dur dans la page... donc le body reste en l'état :

<?php if($_SERVER['PHP_SELF']=='index.php') echo 'onLoad="Popup()"' ?>
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<?php mosShowHead(); ?>
<link href="<?php echo $mosConfig_live_site;?>/templates/rhuk_planetfall/css/template_css.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="<?php echo $mosConfig_live_site;?>/images/favicon.ico" />
</head>
<body class="page_bg" OnLoad="startPix()">

Share this post


Link to post
Share on other sites

Ah ba je comprends mieux.

Le code que je t'ai filé est à inclure dans la balise body, voici ta balise compléte:

<body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF']=='index.php') echo 'Popup()' ?>">

et là, cela devrait être bon...

Share this post


Link to post
Share on other sites

:(

toujours pas !

<body class="page_bg" OnLoad="startPix();">

le bout php n'est pas interprété.

Share this post


Link to post
Share on other sites

demande d'afficher :

echo "$_SERVER['PHP_SELF']";

pour voir si le test est le bon

Share this post


Link to post
Share on other sites

sur cette commande j'ai aussi une erreur d'interprétation :

<?php echo "$_SERVER['PHP_SELF']";?>

et manifestement en regardant le source de la page ce n'est toujours pas interprété :

<body class="page_bg" OnLoad="startPix();">

Edited by nomasis

Share this post


Link to post
Share on other sites

qu'est ce que c'est énervant...

désolé les gars.

Je vais aller crouter un morceau, je repasserais plus tard.

Merci ;)

Share this post


Link to post
Share on other sites

ok, donc corriges le code de façon a obtenir ceci:

<body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF']=='/index.php') echo 'Popup()' ?>">

Share this post


Link to post
Share on other sites

garanti sans erreur :

<?php echo $_SERVER['PHP_SELF'] ?>

cela ecrit quoi?

Share this post


Link to post
Share on other sites

ça donne que le popup se recharge quand même alors que je suis sur une autre page :

http://*****.free.fr/index.php?option=com_content&task=view&id=61&Itemid=1

(désolé je peux pas donner l'adresse du site)

d'ailleurs c'est curieux l'echo server donne toujours

index.php]

alors que je me trouve sur une autre page...

Edited by nomasis

Share this post


Link to post
Share on other sites

Essayes d'être précis quant au problème, stp : si je comprends bien ton dernier post, tu utilises des pseudo-frames, c'est à dire que tu n'as qu'une seule page dont le contenu est différent selon le contenu de ta querystring (ce qui se trouve après le ? dans l'url). dans ce cas, l'utilisation de $_SERVER['PHP_SELF'] ne suffit pas car cette valeur te renvoie seulement l'url de la page relative à la racine du serveur. dans ce cas, tu devrais essayer de concaténer à cette valeur le contenu de la querystring avec la variable $_SERVER[' QUERY_STRING '] , ce qui donne ceci:

<body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF'].'?'.$_SERVER[' QUERY_STRING ']=='/index.php?option=com_content&task=view&id=61&Itemid=1') echo 'Popup()' ?>">

en supposant que la querystring que tu donnes dans ton dernier post corresponde à la page sur laquelle tu veux voir s'afficher ta popup, sinon, c'est à adapter ...

Pour vérifier que la valeur est la bonne, tu peux faire comme précedemment un script avec ceci:

<?php echo $_SERVER['PHP_SELF'].'?'.$_SERVER[' QUERY_STRING ']; ?>

Ou alors, je n'ai pas compris et il faut que tu donnes des infos supplémentaires... :whistling:

Share this post


Link to post
Share on other sites

Ok

Alors fais :

<body class="page_bg" OnLoad="startPix();<?php if($_SERVER['PHP_SELF']=='/index.php') echo 'Popup()' ?>">

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...