IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

CGI,Javascript et CSS


Sujet :

Web Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut CGI,Javascript et CSS
    Bonjour,

    J'ai écris un bout de code pour afficher/masquer une div à l'aide de javascript et css.
    Le css est trouvé dans le code cgi perl mais je ne pense que le javascript s'exécute(pas d'effet affichage/masquage). Ma question : Pouquoi?? Qu'est ce qui cloche.

    Si quelqu'un a une idée...
    Merci et bonne journée.

    test.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #!/usr/bin/perl -w
    use CGI::Pretty ":standard";
    use CGI;
    use strict;
    use DBI;
    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
    warningsToBrowser(1);
     
    my $cgi = new CGI;
    print $cgi->header;
    print $cgi->start_html(
    	-title=>'Welcome',
     	-style => { -src => '/fastdb2/tableau.css',-type => 'text/css', -media => 'all' },
     	-script=>{-type => 'javascript',-src=>'/fastdb2/effet.js'});
    print "<div class='clicTitre'>";
    print "  <a href='javascript:afficheId('contenu')'>Nous contacter</a>";
    print "</div>";
    print "<div class='contenant' id='contenu'>";
    print "  <div class='clicCacher'>";
    print "    <a href='javascript:cacheId('contenu');'>Fermer</a>";
    print "  </div>";
    print "NOTRE TEXTE";
    print "</div>";
    print $cgi->end_html;
    tableau.css

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    .clicTitre
      {
      border-color: #000000;
      border-top: 1px solid;
      border-left: 1px solid;
      border-right: 1px solid;
      border-bottom: 2px dashed;
      background-color: #eeeeee;
      }
     
    .clicCacher
      {
      top: -20px;
      position: relative;
      text-align:right;
      }
     
    .contenant
      {
      display : block;
      border: 1px solid #000000;
      }
    Effet.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    function afficheId(baliseId)
      {
      if (document.getElementById && document.getElementById(baliseId) != null)
        {
        document.getElementById(baliseId).style.visibility='visible';
        document.getElementById(baliseId).style.display='block';
        }
      }
     
    function cacheId(baliseId)
      {
      if (document.getElementById && document.getElementById(baliseId) != null)
        {
        document.getElementById(baliseId).style.visibility='hidden';
        document.getElementById(baliseId).style.display='none';
        }
      }
     
    cacheId('contenu');
    // si JavaScript est disponible, cache le contenu dès le
    // chargement de la page. Sans JavaScript, le contenu sera
    // affiché.

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Ce n'est pas un souci Perl mais HTML. Ton code HTML est mal conçu avec des simples quote se mélangeant au double quote. Pour détecter ce genre d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "  <a href='javascript:afficheId('contenu')'>Nous contacter</a>";
    Il faut lire le code source de ta page HTML générée et tu verras :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='javascript:afficheId('contenu')'>Nous contacter</a>
    doit être
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:afficheId('contenu')">Nous contacter</a>
    etc

    Voici ton code Perl corrigé et je viens de tester et ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/usr/bin/perl
    use warnings;
    use CGI::Pretty ":standard";
    use CGI;
    use strict;
    use DBI;
    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
    warningsToBrowser(1);
     
    my $cgi = new CGI;
    print $cgi->header;
    print $cgi->start_html(
    	-title=>'Welcome',
     	-style => { -src => '/fastdb2/tableau.css',-type => 'text/css', -media => 'all' },
     	-script=>{-type => 'javascript',-src=>'/fastdb2/effet.js'}
    );
    print <<"CODECGI";
    <div class="clicTitre">
        <a href="javascript:afficheId('contenu')">Nous contacter</a>
    </div>
     
    <div class="contenant" id="contenu">
      <div class='clicCacher'>
          <a href="javascript:cacheId('contenu');">Fermer</a>
      </div>
        NOTRE TEXTE
    </div>
    CODECGI
    print $cgi->end_html;

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Ok super merci, et une dernière question au passage.
    C'est plus sur le javascript...
    Le script s'éxecute mais il affiche directement le contenu de ma div.
    J'aimerai qu'elle soit masquée dans un premier pour que l'utilisateur puisse ensuite l'afficher (et non l'inverse).

    Et encore merci pour la rapidité de ta réponse :-)

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Il suffit de ne pas afficher le contenu de ta balise div dans ta feuille de style par défaut. Le changement est à effectuer dans le feuille de style :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .contenant {
      display : none;
      border: 1px solid #000000;
    }

    Par défaut, le div ne sera pas affiché.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Génial
    Jte remercie :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. "Assembler" les éléments d'un menu javascript (.js + .css)
    Par beegees dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/06/2006, 10h15
  2. [débutant]javascript dans css?
    Par ozzmax dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 17/11/2005, 15h35
  3. [Perl/CGI] application de CSS
    Par slaborde dans le forum Web
    Réponses: 4
    Dernier message: 02/08/2005, 14h45
  4. [POO] Javascript et Css
    Par ikkyu_os dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2004, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo