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 :

Perl CGI Ajax, Header, ajout de références scripts externes


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    System Specialist III
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : System Specialist III

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut Perl CGI Ajax, Header, ajout de références scripts externes
    Bonjour,

    Vous êtes ma dernière chance! j'ai fait plusieurs forums, regardé la documentation CPAN pour le module CGI::AJAX, une quantité incroyable d'informations sur le web mais j'ai fait chou blanc.
    Alors merci d'avance pour votre aide.

    Je débute en Perl CGI et je veux utiliser le module AJAX dans la construction d'une page html. J'ai compris le principe et ça fonctionne très bien. Là où je bute c'est pour la construction de la page HTML. Je ne trouve pas comment rajouter un référence de script exterme dans le Header. J'obtiens toujours l'erreur suivante:
    "No head/html tags, nowhere to insert. Returning javascript anyway". Si j'analyse la page avec firebug je trouve bien ma référence javascript, mais l'insertion de l'Ajax ne veux pas se faire dans la section Head. Voila mon script, pour ne pas être trop long je l'ai abrégé;

    use CGI qw(:standard);
    use CGI::Carp qw(fatalsToBrowser);
    use strict;
    use CGI; # or any other CGI:: form handler/decoder
    use CGI::Ajax;
    my $cgi = new CGI;
    my $pjx = new CGI::Ajax( 'exported_func' => \&RESOLVE);
    print $pjx->build_html($cgi,\&Show_HTML, {-charset=>'UTF-8', -expires=>'-1d'});

    sub RESOLVE {.......
    }
    sub Show_HTML {
    print header,
    start_html( -title=>'Exemple de formulaire crée par un script Perl',
    -script => {-language => 'javascript', src=> 'http://<mon javascript>'}),
    h1('Ma page'),
    ...........
    end_html;
    }

    Meilleures salutations
    Smooky132

  2. #2
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -script => {-language => 'javascript', -src=> 'http://<mon javascript>'}),
    t'aurais pas oublié le tiret

    sinon pourquoi mettre http://<mon javascript> et non pas
    De plus quand tu utilise cgi::ajax, c'est lui qui te cree les entetes donc si tu veux le changer, c'est en triosieme argument de build je pense

  3. #3
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Show_HTML doit retourner un code html.

    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
    30
    #!C:/Perl/bin/perl.exe
    use CGI qw(:standard);
    use CGI::Carp qw(fatalsToBrowser);
    use strict;
    use CGI; # or any other CGI:: form handler/decoder
    use CGI::Ajax;
    my $cgi = new CGI;
    my $pjx = new CGI::Ajax( 'exported_func' => \&RESOLVE);
    print $pjx->build_html($cgi,
      \&Show_HTML, 
     {-charset=>'UTF-8', 
      -expires=>'-1d',
    });
     
    sub RESOLVE {
    return;
    }
    sub Show_HTML {
      my $html = "<html><body>";
      $html .= $cgi->start_html(
        -lang   => "fr-en",
        -title  => "Exemple de formulaire crée par un script Per",
        -style  => { "src"     => "toto.css" },
        -script => { -language => "JAVASCRIPT", 
                      -src      => "http://mon javascript>",
                    },
        );
    $html .= h1('Ma page'),
        return $html;
    }

  4. #4
    Membre averti
    Homme Profil pro
    System Specialist III
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : System Specialist III

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut show_html
    Merci pour ton aide.

    Ce n'est pas le caractère "-" qui cause le problème.

    Je suis d'accord avec toi show_html doit retourner un code html.

    Dans mon cas j'utilise: print header, start_html(...
    Ceci retourne bien un code html. j'ai regardé avec firebug et le code est bien la! L'insertion de l'ajax ne s'effectue malheureusement pas quand on se sert des fonction objet de CGI.

    Meilleures salutations
    Smooky

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    non, "print header..." ne produit pas un code HTML, il produit une réponse HTTP, le header() ne fait pas partie du HTML, il l'introduit seulement, supprime le et voit si ça s'arrange.

    --
    Jedaï

  6. #6
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Le code mis ci dessus est ok, j'ai l'impression que tu ne l'a pas lu
    tu verras bien à l'intérieur que je n'ai pas mis de header() dans la procedure.
    Le javascript se met dans le start_html .

  7. #7
    Membre averti
    Homme Profil pro
    System Specialist III
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : System Specialist III

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut show_html
    Merci pour ton aide.

    Ce n'est pas le caractère "-" qui cause le problème.

    Je suis d'accord avec toi show_html doit retourner un code html.

    Dans mon cas j'utilise: print header, start_html(...
    Ceci retourne bien un code html. j'ai regardé avec firebug et le code est bien la! L'insertion de l'ajax ne s'effectue malheureusement pas quand on se sert des fonction objet de CGI.

    Meilleures salutations
    Smooky

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

Discussions similaires

  1. [AJAX] Perl CGI Ajax, Header, ajout de références scripts externes
    Par smooky132 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 03/11/2008, 16h42
  2. header() en perl->CGI
    Par mauroyb0 dans le forum Web
    Réponses: 9
    Dernier message: 12/05/2006, 09h35
  3. Probleme apache et script perl-CGI
    Par Kara dans le forum Web
    Réponses: 8
    Dernier message: 20/04/2006, 21h05
  4. Réponses: 3
    Dernier message: 03/02/2006, 23h31
  5. [perl/CGI] Ecrire du HTML dans un script perl
    Par LE NEINDRE dans le forum Web
    Réponses: 3
    Dernier message: 02/08/2005, 14h50

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