bonjour à tous,
j'ecris une interface CGI DBI en perl. c'est au niveau du CGI que ca coince:
j'ai un formulaire simple ecris en CGI qui renvoie (methods post) un parametre unique (donc simple a "parser") à un autre formulaire CGI qui doit utiliser ce parametre.
1-le 1er formulaire est du type:
le parametre scip est bien envoyé au deuxième formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 print startform(-method=>'post', -action=>"../test.cgi", -target=>'response'); print div({-class=>'menu_onglet'}, span({-class=>'onglet-actif'},'Search trait'), hidden(-class=>'onglet', -name=>'scip', -default=> $cgi -> param('project')), submit({-class=>'onglet',-value=>'Search QTL by trait'}), a({-class=>'onglet', -href=>"$project"},'Project description') ); print endform;
2-le deuxième formulaire doit lire le parametres qui lui a été envoyé ET ecrire un formulaire qui depend du parametre que le premier script lui a envoyé.il est du type
apres avoir chercher sur la doc et les forum, et revus mon script je ne comprend ce que devien ma ma variable $in ??
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 #!/usr/bin/perl use strict; use Carp; use DBI; use CGI qw/:all/; #recuperation des parametres my $cgi_in = new CGI; my $in = $cgi_in = param('scip'); #ici un #print $in; # me donne bien la valeur envoyée par le 1er script: #Le parametre est bien lu et stocké dans un variable #creation d'un nouveau cgi my $cgi = new CGI; my $title = "eQTL by Hak: this frame should be in a frameset"; print $cgi -> header; my $path_info = $cgi -> path_info; #ECRITURE DE LA PAGE HTML #si pas de path_info alors je creer un FRAME SET if(!$path_info){ &print_frameset; exit 0; } #sinon j'ecris dans les differents FRAME en fonction de leur $path_info &print_html_header; &print_onglet if $path_info =~ /onglet/; &print_query if $path_info =~ /query/; &print_response if $path_info =~ /response/; &print_end; #LES FONCTIONS #ecriture du FRAME SET sub print_frameset{ my $script_name = $cgi -> script_name; # ICI print $in; me donne bien encore une fois la valeur attendue print <<FS <HTML> <HEAD><TITLE>$title</TITLE></HEAD> <FRAMESET ROWS="9%,*" FRAMEBORDER="yes"> <FRAME NAME="onglet" SRC="$script_name/onglet" SCROLLING="auto"> <FRAMESET COLS="25,*" FRAMEBORDER="yes"> <FRAME NAME="query" SRC="$script_name/query" SCROLLING="auto"> <FRAME NAME="response" SRC="$script_name/query" SCROLLING="auto"> </FRAMESET> </FRAMESET> </HTML> FS ; #A PARTIR d'ici la variable $in disparait !!!! ???? print $in; me renvoieune chaine vide exit 0; } #debut de page html sub print_html_header { print $cgi->start_html( -title=>$title, -style=>{-type=>'text/css', -media=>'screen', -src=>'../../style.css' } ); print $in; } #fin de page html sub print_end { print $cgi->end_html; } #ecriture du contenu de mes FRAMES sub print_onglet{ my $script_name = $cgi -> script_name; print "::::".$in."!!!"; #$in est vide depuis le FRAMESET } sub print_query{ my $script_name = $cgi -> script_name; print "::::".$in."!!!"; #$in est vide depuis le FRAMESET } sub print_response{ my $script_name = $cgi -> script_name; print "::::".$in."!!!"; #$in est vide depuis le FRAMESET } exit 0;
Est ce que quelqu'un pourrait m'eclairer ?
Merci d'avance,
Partager