Jump to content
Sign in to follow this  
fredrick

problème avec onclick

Rate this topic

Recommended Posts

Bonjour,

J'ai un site avec un menu vertical à gauche et un cadre au mileu de la page dans lequel s'ouvre toute une série de pages.

Disons que le menu comporte trois titres (industrie, société, produits). Dans la page video.html qui s'ouvre grâce à l'include dans la page principale index.php, il y a un lecteur vidéo qui lit la vidéo appellée lorsqu'on clique sur l'un des trois titres. Tout ceci fonctionne bien.

Voici mes codes :

Voici la fonction qui me permet d'ouvrir une vidéo différente lorsqu'on clique sur l'un des trois titres.

<script language="javascript">
function playIt(filename) {
document.embed.filename = filename;
}
</script>

ensuite je met le lecteur vidéo

<div class="video">
 <embed type="application/x-mplayer2" name="embed"
        src="player"
        autostart="1"
        loop="0"
        showcontrols="1"  
        height="340"
        width="380">
  </embed>
</div>

et voici le menu de gauche :

<div class="gauche">
<dl id="menu">

<dt onmouseover="this.style.background='#24cbff';"
    onmouseout="this.style.background='#b0f9ff'">
    <a href="#" onclick="playIt('industrie.wmv')">INDUSTRIE</a>
     
</dt>
 
<dt onmouseover="this.style.background='#24cbff';"
    onmouseout="this.style.background='#b0f9ff'">
    <a href="#" onclick="playIt('wr_fre.mpg ')">SOCIETE</a>
</dt>
   
<dt onmouseover="this.style.background='#24cbff';"
    onmouseout="this.style.background='#b0f9ff'">
    <a href="#" onclick="playIt('produits.mpg')">PRODUITS</a>
</dt>
</dl>
</div>

------------

Voilà donc tout ceci fonctionne. Le menu se trouve dans la page index.php et le reste (fonction+lecteur) dans la page video.html qui est includée dans la page index.php et qui apparaît donc comme page d'accueil, page principale.

j'ai donc mis dans la page index ceci :

<div class="principale">
<?php
 if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
 switch($page){
  case 'accueil' : include('http://127.0.0.1/formation/bom/video.html');break;
  case 'contact': include ('http://127.0.0.1/formation/bom/contact.html');break;
 }
?>
</div>

-------------

Le problème est que lorsqu'on clique sur le lien contact qui ouvre une nouvelle page dans la page index grâce à l'include, un texte apparaît et le menu de gauche est toujours visible mais lorsque je veux revoir une vidéo en cliquant sur l'un des trois titres du menu la page video.html n'apparaît pas ???? et donc la vidéo n'est pas lue.

Les vidéos ne sont lues que lorsque je suis sur la page vidéo.html

Donc j'aimerais trouver le moyen d'ouvrir la page vidéo lorsqu'on clique sur l'un des titres et en même temps faire démarrer la vidéo qui correspond alors qu'on se trouve sur la page contact.

J'espère que j'ai été assez clair et que vous me suivez toujours lol

Je suis preneur à toute vos idées, j'ai déjà essayé pleins de choses mais je n'arrive pas à régler ce problème.

Merci à vous tous,

Passez une bonne journée,

Fred

Share this post


Link to post
Share on other sites

Si ton architecture c'est une page vidéo pour lire les vidéos et une page contact, il est clair quand tu te trouves sur la page de contact tu peux pas jouer tes vidéos, enlever le menu vidéos quand t'es sur la page contact peut etre ...

Share this post


Link to post
Share on other sites

Merci smile mais je veux absolument garder le menu peu importe la page qui s'ouvre.

Je sais que tout est possible en informatique et qu'il doit y avoir moyen de faire deux actions l'une à la suite de l'autre lors d'un click.

Je sais que pour capter l'événement du clicque, on utilise onclick=""

j'ai besoin de savoir comment on met deux actions différentes dans le onclick. La première pour ouvrir la page vidéo.html grâce à :

index.php?page=accueil

et la deuxième action serait de lire la vidéo en question grâce à :

playIt('industrie.wmv')

Le problème c'est qu'il ne s'agit pas du même language car le premier code n'est pas du javascript et je ne sais pas comment on fait. Donc ceci ne fonctionne pas :

<a href="#" onclick="index.php?page=accueil;playIt('industrie.wmv')">

et ceci non plus d'ailleurs :

<a href="index.php?page=accueil" onclick="playIt('industrie.wmv')">

J'espère que c'est plus compréhensible, si quelqu'un pouvait m'aider ça serait sympa, ;)

Merci

Share this post


Link to post
Share on other sites

IL suffit de mettre le code javascript qui joue tes videos dans la page video.html

et tu recuperes le nom de ta video via une variable php, donc le menu serait de type :

<a href="index.php?page=accueil&video=industrie.wmv">video industrie</a>

comme ca tu recuperes le nom video que tu puisses demarrer ta vidéo :)

c'est plus onclick mais un onload ensuite :)

Edited by smile

Share this post


Link to post
Share on other sites

Donc si j'ai bien compris, je met

<a href="index.php?page=accueil&video=industrie.wmv">video industrie</a>

pour mes titres du menu et je récupère la variable video grâce à

<? $video=$_GET['video']; ?> que je place tout en haut de la page video.html ????

C'est bien ça?

Ensuite je dois utiliser cette variable afin de faire jouer la vidéo en question lors du chargement de la page vidéo.html.

Pour faire cela je dois utiliser le onload="", est-ce que ce code est correct ?

onload="playit('$video')"

Mais je le place où ce onload? Dans quelle balise ? :wacko:

Merci à toi Smile

Share this post


Link to post
Share on other sites

oui mais dans ta page index.php qui je comprends bien demarre une video depuis un include video.html, donc mettre dans body de ta page index :

<body onload="playit('<? echo $_GET['video']; ?>')">

// ton include video.html

</body>

Edited by smile

Share this post


Link to post
Share on other sites

Vérifie tout de même si t'es sur l'include page de contact de ne pas mettre le onload sinon tu auras une erreur javascript. Onload doit etre placé quand c'est l'include video qu'est appelé.

Share this post


Link to post
Share on other sites

Ca ne marche pas. Je comprend pas pourtant l'idée est bonne ...

Dans ma page index j'ai mis

<body onload="playit('$_GET[\'vide\']')">

puis plus bas il y a l'include appelant un autre fichier ('video.html') où il y a la fonction en javascript de tout à l'heure qui n'a pas changé et le lecteur vidéo. J'ai bien sûr retiré toutes les balises non nécessaire comme le <body> ou le <html>

Ensuite plus bas dans la page index.php, on trouve le menu avec le <a href> que tu m'as conseillé et bien sûr en y mettant le bon emplacement du fichier vidéo.

Mais ça ne marche pas ????

Il me met dans la barre de statut "erreur sur la page" genre de message d'erreur en javascript

Share this post


Link to post
Share on other sites

parce que c'est <? echo $_GET['video']; ?>

et pas de \' :)

d'abord, php va interpreter le code depuis le serveur puis ensuite le navigateur va lire ta page html et le javascript.

Edited by smile

Share this post


Link to post
Share on other sites

Tu vas dire que je suis ch.. mais ça ne fonctionne toujours pas, il me met des message d'erreur de javascript.

J'ai même essayé d'insérer le <body machin> dans la page video.html mais rien y fait.

Bizarre !

Share this post


Link to post
Share on other sites

t'as combien de body dans ta page index ??

il faut pas que t'es de head,body dans ta video.html uniquement le code insertion de ta video, puisque c'est un include d'une page qui a dejà les balises

Edited by smile

Share this post


Link to post
Share on other sites

je sais, il n'y en a pas.

Il n'y a qu'un head et un body et ils sont tous les deux en haut de ma page index.php

Share this post


Link to post
Share on other sites

C'est quand même bien ça qu'il faut mettre dans la page index ?

<body onload="playIt('<? echo $_GET['video']; ?>')">

Share this post


Link to post
Share on other sites

oui et playit est une fonction que tu dois avoir pour faire jouer ta vidéo, t'as une url à montrer ?

Share this post


Link to post
Share on other sites

essaie comme cela :

<body onload="playIt('<? echo $_GET['video']; ?>');">

avec le point virgule pour la fin de fonction, ca fonctionne ? :)

Share this post


Link to post
Share on other sites

Non, j'ai esayé avec le ; et cela ne marche pas non plus. Pour l'url je ne serai pas t'en donner une car je travaille encore en local pour le moment.

tous mes fichiers sont dans le même répertoire donc il n'y a pas de soucis à ce niveau-là.

En fait tout fonctionne sauf quand je suis sur contact.html. Donc mes fichiers sont bien reconnu par le lectuer qui lui fonctionne à merveille. Donc ma fonction est bonne et l'appelle à cette fonction est bonne.

Le seul truc c'est d'arriver à faire deux action en un seul clique. Je clique sur un des titres et la fenêtre s'ouvre dans l'include et ensuite la vidéo démarre.

Je ne comprend pas, ça ne doit pourtant pas être bien sorcier. Qu'est-ce qui nous échappe ???

Share this post


Link to post
Share on other sites
Qu'est-ce qui nous échappe ???

Moi rien ;)

Je t'es donné la marche à suivre, ca doit fonctionner maintenant y'a une coquille quelque part mais je n'ai pas les fichiers sous les yeux ou l'adresse pour voir ce qui cloche mais ca doit marcher :)

Share this post


Link to post
Share on other sites

Ah bon! Chez toi ça marche avec tout ce qui est écrit dans ce forum ?

Aille, je vais encore une fois tout bien vérifier mais je vois pas là.

Merci en tout cas pour tout, c'est très sympa.

Share this post


Link to post
Share on other sites

Crois-tu que cela pourrait venir de cela ?

<a href="index.php?page=accueil&video='D:/Assets/Video/wr_fre.mpg'">

Share this post


Link to post
Share on other sites

J'ai pas testé, je t'es indiqué le chemin :)

En regardant ton embed pour la vidéo, il y'a plus simple sans passer par la fonction javascript pour demarrer la video (fonctionnera pour ie et firefox) :

<object id="Player" width="220" height="204"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param name="TransparentAtStart" value="false">
<param name="ShowControls" value="true">
<param name="autoStart" value="true">
<param name="url" value="<? echo $_GET['video']; ?>">
<embed width="220" height="204" autostart=1 src="<? echo $_GET['video']; ?>" name="Player"></object>

comme ca tu peux enlever le javascript :)

Share this post


Link to post
Share on other sites

En fait il me met "identificateur attendu" à la ligne 91 qui est celle-ci :

<body onload="playIt('<? echo $_GET['video']; ?>');">

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...