Thread: [htmltmpl] FORMS and populating the value from the database result.
Brought to you by:
samtregar
From: Girish A. <gir...@ya...> - 2003-07-14 01:00:20
|
Hi All, I am new in the HTML::Template world. My Situation, I have a form with one input field for the search criteria. Say search on somebody's last name. When the User types in this field and submits the form a perl script is called which will do two things 1) The database needs to be Queried against the search criteria. 2) A form must be displayed with all the values from the database populated in the appropriate field of the form. This form I am using as a template HTML file. The form which I am using as a template has many <input type=text name"blah"> fields and I have tried them to modify it like, <input type=text name="blah" value="TMPL_VAR ESCAPE=HTM VALUE="lname1"> First of all is this the correct syntax I am using? Second, I am trying to display the parameter field from the template file and I don't get any put put using something like $template = HTML::Template->new(filename => /filename/); @parameters1 = $template->param();. Please advise, how I can the data populated in the appropriate fields in the resulting Form. Secondly, How do I display hover buttons using HTML::Template module. I only get java class loading and nothing happens Thanks, Girish __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com |
From: Andrew B. <an...@br...> - 2003-07-14 02:13:52
|
On 7/13/03 at 6:00 PM, gir...@ya... (Girish Agarwal) wrote: > ... > > The form which I am using as a template has many > <input type=text name"blah"> fields and I have tried > them to modify it like, > <input type=text name="blah" value="TMPL_VAR > ESCAPE=HTM VALUE="lname1"> > First of all is this the correct syntax I am > using? No. Use: <input type=text name="blah" value="<TMPL_VAR NAME="PARAMETER_NAME">"> or: ...value="<!-- TMPL_VAR NAME="PARAMETER_NAME" -->" ...whatever > Second, I am trying to display the parameter > field from the template file and I don't get any put > put using something like > $template = HTML::Template->new(filename => > /filename/); > @parameters1 = $template->param();. I think you need to take a look at the docs: http://html-template.sourceforge.net/html_template.html Look at the basic TMPL_VAR tag and then the TMPL_LOOP tag. I think you are confusing the two and ending up with a third mutation which is ummm... wrong. If after you read them you still have questions I'd be happy to help further. > > Secondly, How do I display hover buttons using > HTML::Template module. I only get java class loading > and nothing happens Javascript will work fine. You should be able to use it in your .tmpl file just as you would in an html file. |
From: Puneet K. <pk...@ei...> - 2003-07-14 02:21:12
|
On Sunday, July 13, 2003, at 08:00 PM, Girish Agarwal wrote: > Hi All, > I am new in the HTML::Template world. welcome. > My Situation, > I have a form with one input field for the > search criteria. Say search on somebody's last name. > When the User types in this field and submits > the form a perl script is called which will do two > things > 1) The database needs to be Queried against the > search criteria. > 2) A form must be displayed with all the values > from the database populated in the appropriate field > of the form. > This form I am using as a template HTML > file. > The form which I am using as a template has many > <input type=text name"blah"> fields and I have tried > them to modify it like, > <input type=text name="blah" value="TMPL_VAR > ESCAPE=HTM VALUE="lname1"> > First of all is this the correct syntax I am > using? the correct way would be <input type="text" name="blah" value="<TMPL_VAR ESCAPE=HTML NAME=param>"> or you can shorten it like so <input type="text" name="blah" value="<TMPL_VAR param ESCAPE=HTML>"> > Second, I am trying to display the parameter > field from the template file and I don't get any put > put using something like > $template = HTML::Template->new(filename => > /filename/); > @parameters1 = $template->param();. you open your template with my $template = HTML::Template->new(filename => 'test.tmpl'); and then assign params like so $template->param(firstname => "Girish"); $template->param(lastname => "Agarwal"); etc. > Please advise, how I can the data populated in > the appropriate fields in the resulting Form. then, assuming your template has been written correctly using the syntax shown above, the input fields in the form will get populated. Keep in mind, this assumes you are correctly querying the database, retrieving the records as an array of hashes, or, in the case of a single record, as a hash table with the db fields as its keys, and the values as its values. > Secondly, How do I display hover buttons using > HTML::Template module. I only get java class loading > and nothing happens > > sorry, no idea. I could be wrong, but iirc, "hover buttons" (I have no idea what they are) are not a part of the HTML::Template module. Hope this helps. Please do look at the H::T docs at http://html-template.sourceforge.net/html_template.html. The docs are really clear and very helpful. There is little I can think of that is not covered by these docs. (aside note: H::T, in my view, is one of those rare modules where I just can't think of anything else that could be added to it or changed... what a gem). |
From: Girish A. <gir...@ya...> - 2003-07-15 11:08:52
|
Hi Puneet, I have tried this and still I am having problems, Now I have used like <input type=text size="15" name="lname" value="<TMPL_VAR NAME="lname1">"> and still whenever I try to print out the parameters in my perl script using @parameteres = $template->param(); No parameters are returned. Also when I run the script from the command line I get "Attempt to set non-existent parameter 'lname1' this parameter name doesn't match any declarations in the template file that is whenever I use $template->param(lname1 => "Girish"); statement Please advise. Thanks, Girish --- Puneet Kishor <pk...@ei...> wrote: > > On Sunday, July 13, 2003, at 08:00 PM, Girish > Agarwal wrote: > > > Hi All, > > I am new in the HTML::Template world. > > welcome. > > > > My Situation, > > I have a form with one input field for the > > search criteria. Say search on somebody's last > name. > > When the User types in this field and > submits > > the form a perl script is called which will do two > > things > > 1) The database needs to be Queried against > the > > search criteria. > > 2) A form must be displayed with all the > values > > from the database populated in the appropriate > field > > of the form. > > This form I am using as a template HTML > > file. > > The form which I am using as a template has > many > > <input type=text name"blah"> fields and I have > tried > > them to modify it like, > > <input type=text name="blah" value="TMPL_VAR > > ESCAPE=HTM VALUE="lname1"> > > First of all is this the correct syntax I am > > using? > > the correct way would be > > <input type="text" name="blah" value="<TMPL_VAR > ESCAPE=HTML > NAME=param>"> > > or you can shorten it like so > > <input type="text" name="blah" value="<TMPL_VAR > param ESCAPE=HTML>"> > > > Second, I am trying to display the parameter > > field from the template file and I don't get any > put > > put using something like > > $template = HTML::Template->new(filename => > > /filename/); > > @parameters1 = $template->param();. > > you open your template with > > my $template = HTML::Template->new(filename => > 'test.tmpl'); > > and then assign params like so > > $template->param(firstname => "Girish"); > $template->param(lastname => "Agarwal"); > etc. > > > > Please advise, how I can the data populated > in > > the appropriate fields in the resulting Form. > > then, assuming your template has been written > correctly using the > syntax shown above, the input fields in the form > will get populated. > > Keep in mind, this assumes you are correctly > querying the database, > retrieving the records as an array of hashes, or, in > the case of a > single record, as a hash table with the db fields as > its keys, and the > values as its values. > > > Secondly, How do I display hover buttons > using > > HTML::Template module. I only get java class > loading > > and nothing happens > > > > > > sorry, no idea. I could be wrong, but iirc, "hover > buttons" (I have no > idea what they are) are not a part of the > HTML::Template module. > > Hope this helps. > > Please do look at the H::T docs at > http://html-template.sourceforge.net/html_template.html. > The docs are > really clear and very helpful. There is little I can > think of that is > not covered by these docs. > > (aside note: H::T, in my view, is one of those rare > modules where I > just can't think of anything else that could be > added to it or > changed... what a gem). > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps1 > _______________________________________________ > Html-template-users mailing list > Htm...@li... > https://lists.sourceforge.net/lists/listinfo/html-template-users __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com |
From: Andrew B. <an...@br...> - 2003-07-15 12:58:45
|
On 7/15/03 at 4:08 AM, gir...@ya... (Girish Agarwal) wrote: > whenever I try to print out the parameters in my perl script using > @parameteres = $template->param(); > No parameters are returned. @parameteres = $template->param(); ^^^^^Are you trying to set parameter values using this? That will not do what you think it does. After you create a template object, '@parameteres = $template->param();' will return a list of parameters (not values) in the template, and store them in @parameteres. To set the value of a parameter: $template->param(PARAM_NAME => $param_value); Then in your template: My value is <TMPL_VAR NAME="PARAM_NAME> See the docs: http://html-template.sourceforge.net/html_template.html |
From: Puneet K. <pk...@ei...> - 2003-07-15 13:30:28
|
Girish, You need to look at the HTML::Template docs carefully. On Tuesday, July 15, 2003, at 06:08 AM, Girish Agarwal wrote: > @parameteres = $template->param(); > No parameters are returned. what is this? As Andrew stated, this is conceptually just the opposite of what you should be doing. You need to store things in $template->param(somevariable => somevalue); you are doing just the opposite. You are stuffing $template->param() into an array called @parameters. Why? > > $template->param(lname1 => "Girish"); statement > that is the correct way to declare and store a variable... you do this in your perl script. In your template this populates a variable called <tmpl_var lname1> with the value "Girish". If you have tabular data then you use an array. Actually, you use a reference to an array which has as its elements anonymous hashes. Something like this $template->param(sometable => \@array); for example, using DBD's fetchall_arrayref to select values from a table can be done like so my $tbl_ary_ref = $sth->fetchall_arrayref({}); $sth->finish; $dbh->disconnect; then you can say $template->param(sometable => $tbl_ary_ref); in you template then you will need to set up a <tmpl_loop>, etc. But, that is slightly more advanced. Follow the directions above for simple values (scalars) and do read the docs. The docs really are very simple and extremely well written. If things still don't work, post your entire script (provided its not tooooooo long ;-) ) and I will rewrite the important portions for you so you will be on your way. Hope this helps, > --- Puneet Kishor <pk...@ei...> wrote: >> >> On Sunday, July 13, 2003, at 08:00 PM, Girish >> Agarwal wrote: >> >>> Hi All, >>> I am new in the HTML::Template world. >> >> welcome. >> >> >>> My Situation, >>> I have a form with one input field for the >>> search criteria. Say search on somebody's last >> name. >>> When the User types in this field and >> submits >>> the form a perl script is called which will do two >>> things >>> 1) The database needs to be Queried against >> the >>> search criteria. >>> 2) A form must be displayed with all the >> values >>> from the database populated in the appropriate >> field >>> of the form. >>> This form I am using as a template HTML >>> file. >>> The form which I am using as a template has >> many >>> <input type=text name"blah"> fields and I have >> tried >>> them to modify it like, >>> <input type=text name="blah" value="TMPL_VAR >>> ESCAPE=HTM VALUE="lname1"> >>> First of all is this the correct syntax I am >>> using? >> >> the correct way would be >> >> <input type="text" name="blah" value="<TMPL_VAR >> ESCAPE=HTML >> NAME=param>"> >> >> or you can shorten it like so >> >> <input type="text" name="blah" value="<TMPL_VAR >> param ESCAPE=HTML>"> >> >>> Second, I am trying to display the parameter >>> field from the template file and I don't get any >> put >>> put using something like >>> $template = HTML::Template->new(filename => >>> /filename/); >>> @parameters1 = $template->param();. >> >> you open your template with >> >> my $template = HTML::Template->new(filename => >> 'test.tmpl'); >> >> and then assign params like so >> >> $template->param(firstname => "Girish"); >> $template->param(lastname => "Agarwal"); >> etc. >> >> >>> Please advise, how I can the data populated >> in >>> the appropriate fields in the resulting Form. >> >> then, assuming your template has been written >> correctly using the >> syntax shown above, the input fields in the form >> will get populated. >> >> Keep in mind, this assumes you are correctly >> querying the database, >> retrieving the records as an array of hashes, or, in >> the case of a >> single record, as a hash table with the db fields as >> its keys, and the >> values as its values. >> >>> Secondly, How do I display hover buttons >> using >>> HTML::Template module. I only get java class >> loading >>> and nothing happens >>> >>> >> >> sorry, no idea. I could be wrong, but iirc, "hover >> buttons" (I have no >> idea what they are) are not a part of the >> HTML::Template module. >> >> Hope this helps. >> >> Please do look at the H::T docs at >> > http://html-template.sourceforge.net/html_template.html. >> The docs are >> really clear and very helpful. There is little I can >> think of that is >> not covered by these docs. >> >> (aside note: H::T, in my view, is one of those rare >> modules where I >> just can't think of anything else that could be >> added to it or >> changed... what a gem). >> >> >> >> > ------------------------------------------------------- >> This SF.Net email sponsored by: Parasoft >> Error proof Web apps, automate testing & more. >> Download & eval WebKing and get a free book. >> www.parasoft.com/bulletproofapps1 >> _______________________________________________ >> Html-template-users mailing list >> Htm...@li... >> > https://lists.sourceforge.net/lists/listinfo/html-template-users > > > __________________________________ > Do you Yahoo!? > SBC Yahoo! DSL - Now only $29.95 per month! > http://sbc.yahoo.com > > > ------------------------------------------------------- > This SF.Net email sponsored by: Parasoft > Error proof Web apps, automate testing & more. > Download & eval WebKing and get a free book. > www.parasoft.com/bulletproofapps1 > _______________________________________________ > Html-template-users mailing list > Htm...@li... > https://lists.sourceforge.net/lists/listinfo/html-template-users |
From: Girish A. <gir...@ya...> - 2003-07-16 01:22:39
|
Hi Puneet, Thanks for your/everybody's help. I had to edit the Template file ( i.e the htm file in linux, instead of in the frontpage editor ), and with the correct syntax provided by everyone on this list I could get this thing working ( $template->param(lname1 => "xyz" );. The @paramteres = $template->param(); returns the parameters which are defined in the template file. So in my case it returned lname1. Thanks, Girish --- Puneet Kishor <pk...@ei...> wrote: > Girish, > > You need to look at the HTML::Template docs > carefully. > > On Tuesday, July 15, 2003, at 06:08 AM, Girish > Agarwal wrote: > > > @parameteres = $template->param(); > > No parameters are returned. > > what is this? As Andrew stated, this is conceptually > just the opposite > of what you should be doing. You need to store > things in > $template->param(somevariable => somevalue); > > you are doing just the opposite. You are stuffing > $template->param() > into an array called @parameters. Why? > > > > > > $template->param(lname1 => "Girish"); statement > > > > that is the correct way to declare and store a > variable... you do this > in your perl script. In your template this populates > a variable called > <tmpl_var lname1> with the value "Girish". > > If you have tabular data then you use an array. > Actually, you use a > reference to an array which has as its elements > anonymous hashes. > Something like this > $template->param(sometable => \@array); > > for example, using DBD's fetchall_arrayref to select > values from a > table can be done like so > > my $tbl_ary_ref = $sth->fetchall_arrayref({}); > $sth->finish; > $dbh->disconnect; > > then you can say > $template->param(sometable => $tbl_ary_ref); > > in you template then you will need to set up a > <tmpl_loop>, etc. But, > that is slightly more advanced. > > Follow the directions above for simple values > (scalars) and do read the > docs. The docs really are very simple and extremely > well written. > > If things still don't work, post your entire script > (provided its not > tooooooo long ;-) ) and I will rewrite the important > portions for you > so you will be on your way. > > Hope this helps, > > > > --- Puneet Kishor <pk...@ei...> wrote: > >> > >> On Sunday, July 13, 2003, at 08:00 PM, Girish > >> Agarwal wrote: > >> > >>> Hi All, > >>> I am new in the HTML::Template world. > >> > >> welcome. > >> > >> > >>> My Situation, > >>> I have a form with one input field for > the > >>> search criteria. Say search on somebody's last > >> name. > >>> When the User types in this field and > >> submits > >>> the form a perl script is called which will do > two > >>> things > >>> 1) The database needs to be Queried > against > >> the > >>> search criteria. > >>> 2) A form must be displayed with all the > >> values > >>> from the database populated in the appropriate > >> field > >>> of the form. > >>> This form I am using as a template > HTML > >>> file. > >>> The form which I am using as a template > has > >> many > >>> <input type=text name"blah"> fields and I have > >> tried > >>> them to modify it like, > >>> <input type=text name="blah" value="TMPL_VAR > >>> ESCAPE=HTM VALUE="lname1"> > >>> First of all is this the correct syntax I > am > >>> using? > >> > >> the correct way would be > >> > >> <input type="text" name="blah" value="<TMPL_VAR > >> ESCAPE=HTML > >> NAME=param>"> > >> > >> or you can shorten it like so > >> > >> <input type="text" name="blah" value="<TMPL_VAR > >> param ESCAPE=HTML>"> > >> > >>> Second, I am trying to display the > parameter > >>> field from the template file and I don't get any > >> put > >>> put using something like > >>> $template = HTML::Template->new(filename => > >>> /filename/); > >>> @parameters1 = $template->param();. > >> > >> you open your template with > >> > >> my $template = HTML::Template->new(filename => > >> 'test.tmpl'); > >> > >> and then assign params like so > >> > >> $template->param(firstname => "Girish"); > >> $template->param(lastname => "Agarwal"); > >> etc. > >> > >> > >>> Please advise, how I can the data populated > >> in > >>> the appropriate fields in the resulting Form. > >> > >> then, assuming your template has been written > >> correctly using the > >> syntax shown above, the input fields in the form > >> will get populated. > >> > >> Keep in mind, this assumes you are correctly > >> querying the database, > >> retrieving the records as an array of hashes, or, > in > >> the case of a > >> single record, as a hash table with the db fields > as > >> its keys, and the > >> values as its values. > >> > >>> Secondly, How do I display hover buttons > >> using > >>> HTML::Template module. I only get java class > >> loading > >>> and nothing happens > >>> > >>> > >> > >> sorry, no idea. I could be wrong, but iirc, > "hover > >> buttons" (I have no > >> idea what they are) are not a part of the > >> HTML::Template module. > >> > >> Hope this helps. > >> > >> Please do look at the H::T docs at > >> > > > http://html-template.sourceforge.net/html_template.html. > >> The docs are > >> really clear and very helpful. There is little I > can > >> think of that is > >> not covered by these docs. > >> > >> (aside note: H::T, in my view, is one of those > rare > >> modules where I > >> just can't think of anything else that could be > >> added to it or > >> changed... what a gem). > >> > >> > >> > >> > > > ------------------------------------------------------- > === message truncated === __________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com |
From: Mark S. <ma...@su...> - 2003-07-21 21:54:45
|
In article <200...@we...>, Girish Agarwal wrote: > > This form I am using as a template HTML > file. > The form which I am using as a template has many ><input type=text name"blah"> fields and I have tried > them to modify it like, ><input type=text name="blah" value="TMPL_VAR ESCAPE=HTM VALUE="lname1"> Hello, I've found that the easiest way to solve this problem is not use HTML::Template. Instead, leave your form elements alone and use: HTML::FillInForm That will match up a data hash with your form fields of the same name. It's much faster to set up than putting all the extra HTML::Template tags in. Because there is less syntax involved, it's easier to setup and debug later. Mark -- . . . . . . . . . . . . . . . . . . . . . . . . . . . Mark Stosberg Principal Developer ma...@su... Summersault, LLC 765-939-9301 ext 202 database driven websites . . . . . http://www.summersault.com/ . . . . . . . . |