[Zope] Event handling problem ,explained

prabuddha ray buddha_2001 at rediffmail.com
Wed Mar 2 01:48:51 EST 2005


sir ,
  thanks for that detailed solution. but i guess my problem was 
simpler. i cudnt explain it properly .

below is the code for the html page generated by C_login.asp .
I've to rebuilt this page in zope and as u'll see i've alraedy the 
javascript functionality that u've mentioned in 3rd soln.
but the javascript is not at all being executed in zope.
it will obviously give error as soonas u select some district coz 
the original asp is not there. but this is wat i wanted : as soon 
as i select a district the the corresponding user list in next 
combobox sud appear.the data are being fetched from Mysql using 
the ZSQL queries.
AND CAN WE ANYWAY USE JAVASCRIPT IN DTML DOCUMENTS.
please tell me the soln in ZOPE.

CODE c_login.asp.html
  "

<link REL="stylesheet" TYPE="text/css" 
HREF="_Themes/expeditn/THEME.CSS" VI6.0THEME="Expedition">
<link REL="stylesheet" TYPE="text/css" 
HREF="_Themes/expeditn/GRAPH0.CSS" VI6.0THEME="Expedition">
<link REL="stylesheet" TYPE="text/css" 
HREF="_Themes/expeditn/COLOR0.CSS" VI6.0THEME="Expedition">
<link REL="stylesheet" TYPE="text/css" 
HREF="_Themes/expeditn/CUSTOM.CSS" 
VI6.0THEME="Expedition"></head>
<body bgColor=darkseagreen bottomMargin=0 topMargin=0><font 
face=Arial color=darkblue ><strong>
       <center><strong><font color=white face=tahoma ><font
       face=Arial><strong><font 
color=firebrick>Government&nbsp;of
       India<br></font><font color=gold><font color=black>Ministry 
of
       Communication &amp;&nbsp;Information Technology</font> 
<br></font>
       <font color=darkgreen>Department of Information
       
Technology<br></font></strong></font></font></strong></center>


     <center><strong><font face=tahoma color=black >National 
Informatics Center</font></strong></center>
         <center><strong><font face=tahoma 
color=royalblue>JHARKAND STATE UNIT</font></strong></center>
       <center><strong><font color=black 
 >JHARKAND</font></strong></center>
</strong></font>
<hr style="COLOR: black"></body></html>


<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</head>

<body bgColor=LightSteelBlue onload="foc()">
<script language="javascript">
function sub_click(){
 	document.nlogin.login.value='y'
 	document.nlogin.action='c_nlogged.asp'
 	document.nlogin.method='post'
 	document.nlogin.submit()
}
function res(){
 	document.nlogin.districtname.selectedIndex=0
 	document.nlogin.username.selectedIndex=0
 	document.nlogin.password1.value=''
 	document.nlogin.districtname.focus()
}
function foc(){
 	if (document.nlogin.invalid.value==1){
 		document.nlogin.districtname.focus()
 		return false
 	}
 	if (document.nlogin.user11.value=='y'){
 		document.nlogin.username.focus()
 		return false
 	}
 	document.nlogin.districtname.focus()
}
function user10(){
 	document.nlogin.user11.value='y'
 	document.nlogin.action='c_login.asp'
 	document.nlogin.method='post'
 	document.nlogin.submit()
}
</script>
<form name="nlogin" method="post" action="c_nlogged.asp">
<input name=invalid type=hidden value="">
<input name=login type=hidden value="y">
<input name=user11 type=hidden>
<center>

 	<center><font face=arial color=darkred size=5><b>System 
Management Group</font>
<br><br><br>
<center><font face=arial color=darkblue size=4>Logon Screen for 
NIC Officers - <font 
color=red>Consumables(Tech)</font><br><br></font>

<table border=1 cellspacing=1 bordercolor="darkblue" cellpadding=4 
align=center>

<tr>
 		<td align=left>
 			<font face=arial color=darkgreen size=3><b>District Name 
&nbsp;&nbsp;</font></td></font>
 		<td align=left>
 			<select name=districtname style="HEIGHT: 22px; WIDTH: 185px" 
onchange="user10()">
 				<option value="" selected>

 						<option value="01">Bokaro
 						<option value="02">Chatra
 						<option value="03">Deoghar
 						<option value="04">Dhanbad
 						<option value="05">Dumka
 						<option value="06">East Singhbhum
 						<option value="07">Garwah
 						<option value="08">Giridih
 						<option value="09">Godda
 						<option value="10">Gumla
 						<option value="11">Jamtara
 						<option value="99">JHARKAND
 						<option value="12">Koderma
 						<option value="13">Latehar
 						<option value="14">Lohardagga
 						<option value="15">Pakur
 						<option value="16">Palamu
 						<option value="18">Ranchi
 						<option value="19">Sahibganj
 						<option value="20">Seraikela
 						<option value="21">Simdega
 						<option value="22">West Singhbhum
 			</select>

 		</td>
 	</tr>

 	<tr>
 		<td align=left>
 			<font face=arial color=darkgreen size=3><strong>User 
Name&nbsp;&nbsp; </font></td></font>
 		<td align=left>
 			<select name=username style="HEIGHT: 22px; WIDTH: 185px">

 				<option value="" selected>

 			</select>
 		</td>
 	</tr>


 	<tr>
 		<td align=left>
 			<font face=arial color=darkgreen size=3><strong> 
Password&nbsp;&nbsp;&nbsp;&nbsp;</font></td>

 		<td align=left>
 			<input name=password1 style="HEIGHT: 22px; WIDTH: 185px" 
type=password >
 		</td>
 	</tr>

</table>

<p 
align=center>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	<input title="Click to Go" name=subm type=button value=Go 
style="color:blue" onclick="sub_click()">&nbsp;&nbsp;
 	<input title="Click to Reset" name=reset1 type=button 
value=Reset style="color:red" onclick="res()">
 	<br><br><center><a href=stores.asp title="Back to Main 
Menu"><font size=5 face=tahoma color=blue><b>Back</b></font></a>
</p>
</form>
</b>
</body>
</html>

"

On Tue, 01 Mar 2005 Jonathan Hobbs wrote :

>Just to make sure I understand what you are trying to achieve... 
>you want
>the user to enter some selection criteria, then based on what the 
>user
>enters you display a second set of selection criteria, which the 
>user then
>chooses from.  You then take combine the user's two choices to 
>create a
>mysql query or update command.
>
>If this is what you want, then I can think of three possible 
>solutions (and
>I am sure there are more):
>
>Solution #1
>
>- create an html form which presents the first set of selection 
>options.
>Have the form action send the results to a dtml method/python 
>script
>- create a dtml method/python script which parses the users first 
>selection
>and creates a new form with the second set of selection criteria.  
>Include
>within the html form a set of 'hidden' form field elements which 
>contain the
>user's first set of selection criteria.  Have this form send the 
>results to
>a second dtml method/python script
>- create a second dtml method/python script which parses the 
>second
>selection form and grabs both the user-entered selection criteria 
>(the
>second set of selection criteria) and also grabs the 'hidden' 
>form field
>elements which contain the user's selections from the first 
>form
>
>
>Solution #2
>
>- create an html form with hidden 'div's that you can display 
>based on the
>user's first choice from the selection criteria.  This will only 
>work if:
>(i) there is a limited number of options for the second set of 
>selection
>criteria, and (ii) the second set of selection criteria is 
>'static'
>
>
>Solution #3
>
>- create an html form that has a javascript function that gets 
>invoked when
>the user makes a choice from the selection criteria.  This 
>javascript
>function takes the user's selection and creates a url with the 
>user's
>selection as parameters.  The javascript function then uses the 
>url to load
>a dtml method/python script into a hidden iframe in the original 
>html form.
>The dtml method/python script receives the parameters (passed 
>thru the url),
>processes them to determine the contents of the second set of 
>selection
>criteria, then creates javascript variables containing the 
>information for
>the second set of selection criteria.  These javascript variables 
>are then
>loaded into the hidden iframe and become accessible to the 
>original
>javascript function which can then create and display the second 
>set of
>selection criteria.
>
>This solution is a bit more difficult to implement, but if you 
>don't want to
>reload the page while the user is looking it should do the 
>trick!
>
>hth
>
>Jonathan
>
> From: "prabuddha ray" <buddha_2001 at rediffmail.com>
> >   I'm using mysql database in my zope 2.7.
> > While creating a page i needed to get data in one combobox 
>after
> > selecting data from another combobox. for this i need to do 
>"page
> > reload " using something like onChange() of javascript. 
>Javascript
> > won do DTML being a server side lang. I
> > How do handle such events in zope in dtml.
> > plz give a solution.
>
>



More information about the Zope mailing list