ocsurf
asked on
add javascript
perl/CGI code :
print p(checkbox("fries",0,"yes" ,"Fries")) ;
html code:
<input name="checkbox" type="checkbox" onMouseOver="showPic(1)" value="checkbox">
is there a way to add the onMouseOver to the perl code?? thank you!!
print p(checkbox("fries",0,"yes"
html code:
<input name="checkbox" type="checkbox" onMouseOver="showPic(1)" value="checkbox">
is there a way to add the onMouseOver to the perl code?? thank you!!
ASKER
is it better or makes a difference it you preform the html functions This way
#Perl
print start_form() ;
# add both textfields to form
print p("Name: ", textfield("name")) ;
print p("E-mail address: ", textfield("site")) ;
# add the dogs we initialized in dogs array
print p(radio_group("dog", \@dogs,"Big dog",1)) ;
or------------
#printing html
print qq(<form name="form1" method="post" action="">
<table width="735" border="1" summary="main">
<caption>
main table
</caption>
<tr>
<td width="159" height="247">
<input name="checkbox" type="checkbox" onMouseOver="showPic(1)" value="checkbox">
Plain Dog <p><input name="checkbox" type="checkbox" onMouseOver="showPic(3)" value="checkbox"> Cheese Dog </p></td>.......etc
#Perl
print start_form() ;
# add both textfields to form
print p("Name: ", textfield("name")) ;
print p("E-mail address: ", textfield("site")) ;
# add the dogs we initialized in dogs array
print p(radio_group("dog", \@dogs,"Big dog",1)) ;
or------------
#printing html
print qq(<form name="form1" method="post" action="">
<table width="735" border="1" summary="main">
<caption>
main table
</caption>
<tr>
<td width="159" height="247">
<input name="checkbox" type="checkbox" onMouseOver="showPic(1)" value="checkbox">
Plain Dog <p><input name="checkbox" type="checkbox" onMouseOver="showPic(3)" value="checkbox"> Cheese Dog </p></td>.......etc
ASKER
Forget the last question i figured it out. But how would i do this
@dogs = ('Big dog','Cheese Dog','Plain dog') ;
print p(radio_group("dog", \@dogs,"Big dog",1)) ;
for big dog i would like the mouse over to call showpic(3)
for Cheese dog i would like the mouse over to call showpic(4)
for Plain dog i would like the mouse over to call showpic(5)
is there way, it tried to to do it like above but i think it is because it is an array and a radio group? right?
@dogs = ('Big dog','Cheese Dog','Plain dog') ;
print p(radio_group("dog", \@dogs,"Big dog",1)) ;
for big dog i would like the mouse over to call showpic(3)
for Cheese dog i would like the mouse over to call showpic(4)
for Plain dog i would like the mouse over to call showpic(5)
is there way, it tried to to do it like above but i think it is because it is an array and a radio group? right?
ASKER
add 100 points
From CGI pod:
print $query->radio_group(-name= >'group_na me',
-values=>['eenie','meenie' ,'minie'],
-default=>'meenie',
-linebreak=>'true',
-labels=>\%labels,
-attributes=>\%attributes) ;
-or-
print $query->radio_group('group _name',['e enie','mee nie','mini e'],
'meenie','true',\%labels,\ %attribute s);
==========
So, if you wish to continue to avoid the keyword-based parameters, you could do:
@dogs = ('Big dog','Cheese Dog','Plain dog') ;
@dogattr{ @dogs } = ( { onmouseover=>{ 'Big dog'=>"showpic(3)" },
{ onmouseover=>"showpic(4)" },
{ onmouseover=>"showpic(5)"} );
print p(radio_group("dog", \@dogs, 'big dog', 1, { }, \%dogattr));
It turns out we have to use the un-minused attribute names in the %dogattr array because of the way the set_attributes routine works internal to CGI.pm.
Anyway, the above code gives me:
<p>
<input type="radio" name="dog" value="Big dog" onmouseover="showpic(3)" />
Big dog<br />
<input type="radio" name="dog" value="Cheese Dog" onmouseover="showpic(4)" />
Cheese Dog<br />
<input type="radio" name="dog" value="Plain dog" onmouseover="showpic(5)" />
Plain dog<br />
</p>
except I inerted some newlines to add clarity and keep the lines from getting too long.
print $query->radio_group(-name=
-values=>['eenie','meenie'
-default=>'meenie',
-linebreak=>'true',
-labels=>\%labels,
-attributes=>\%attributes)
-or-
print $query->radio_group('group
'meenie','true',\%labels,\
==========
So, if you wish to continue to avoid the keyword-based parameters, you could do:
@dogs = ('Big dog','Cheese Dog','Plain dog') ;
@dogattr{ @dogs } = ( { onmouseover=>{ 'Big dog'=>"showpic(3)" },
{ onmouseover=>"showpic(4)" },
{ onmouseover=>"showpic(5)"}
print p(radio_group("dog", \@dogs, 'big dog', 1, { }, \%dogattr));
It turns out we have to use the un-minused attribute names in the %dogattr array because of the way the set_attributes routine works internal to CGI.pm.
Anyway, the above code gives me:
<p>
<input type="radio" name="dog" value="Big dog" onmouseover="showpic(3)" />
Big dog<br />
<input type="radio" name="dog" value="Cheese Dog" onmouseover="showpic(4)" />
Cheese Dog<br />
<input type="radio" name="dog" value="Plain dog" onmouseover="showpic(5)" />
Plain dog<br />
</p>
except I inerted some newlines to add clarity and keep the lines from getting too long.
ASKER
@dogattr{ @dogs } = ( { onmouseover=>{ 'Big dog'=>"showpic(3)" },
{ onmouseover=>"showpic(4)" },
{ onmouseover=>"showpic(5)"} );
this part the {} don't match up, there may be an extra on? I'm learning all this, why did you put a % but at the top you put a @
| |
V V
\%dogattr)); @dogattr
thank you for the help
{ onmouseover=>"showpic(4)" },
{ onmouseover=>"showpic(5)"}
this part the {} don't match up, there may be an extra on? I'm learning all this, why did you put a % but at the top you put a @
| |
V V
\%dogattr)); @dogattr
thank you for the help
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
print p(checkbox( -name=>"fries", -checked=>0, -value=>"yes",
-label=>"Fries", -onMouseOver=>"showPic(1)"
The attribute name will be lower-cased, but that does no harm to the functionality:
<p><input type="checkbox" name="fries" value="yes" onmouseover="showPic(1)" />Fries</p>