[Zope] How to Use Javascript returns in DTML tags

Gerard Mulot gerard.mulot@noos.fr
Wed, 24 Oct 2001 00:33:37 +0200


This is a multi-part message in MIME format.

------=_NextPart_000_0007_01C15C23.859093A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Herman wrote
I am trying to simply use the return (rfqNumber) from a Javascript =
script as
a variable in a DTML tag (see code below).  I've also tried placing the
Javascript code in-line to the DTML, as well as trying to encapsulating =
the
script in a DTML method.  None of this seems to work.  Yes, I am fairly =
new
to DTML (and Zope, for that matter).  I have seen articles on how to =
pass
arguments from DTML to Javascript functions, but not on how to use
Javascript returns in DTML.  Can anyone point, push, or drag me in the =
right
direction?
=20
Thanks in advance for any help.
=20
Here a sample
<dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"><html><=
head><dtml-var manageT><link rel=3D"stylesheet" type=3D"text/css" =
href=3D"../sabine-r.css"><title>Filtre 1</title></head><body><dtml-with =
users><dtml-with "_[user_name]"><dtml-if "PERIODESseltri =3D=3D ''"><P =
align=3D"center"><STRONG> Vous devez s=E9lectionner les periodes en =
premier </STRONG></P><dtml-else><form name=3D"frmFILTER" =
action=3D"Selectionner_FILTRES" method=3D"post" =
target=3D"hidden"><fieldset Style=3D"Padding: 4pt;"><legend> Filtres =
disponibles pour l'Etude : </legend><table><tr><dtml-with =
users><dtml-with "_[user_name]">  <dtml-call =
"REQUEST.set('contract_id',CONTRACT.CONTRACT_NAME)"> =
</dtml-with></dtml-with> <TD></TD></TR><TR> <TD ALIGN=3D"LEFT" =
VALIGN=3D"TOP"> <fieldset Style=3D"Padding: 4pt;">   <legend> ------ =
Filtres disponibles ------ </legend>   <dtml-with users><dtml-with =
"_[user_name]">       <dtml-if "LIGNESdispo =3D=3D 0">         =
<dtml-call "manage_changeProperties(LIGNESdispo=3D1)">         <dtml-var =
"methodes.creLignes(sql, contract_id, user_name, REQUEST)">       =
<dtml-else>         <dtml-var "methodes.getLignes(user_name)">       =
</dtml-if>   </dtml-with></dtml-with>   </fieldset> </td> <TD =
ALIGN=3D"LEFT" VALIGN=3D"TOP">   <fieldset Style=3D"Padding: 4pt;">   =
<legend> ----- Filtres s=E9lectionn=E9es ----- </legend>   <select =
name=3D"FILTRES_SEL" size=3D"15">   <dtml-with users><dtml-with =
"_[user_name]">     <dtml-if "_.len(FILTRESsel) > 0">       <dtml-in =
"_.string.split(FILTRESsel,',')">           <dtml-in =
"_.string.split(_['sequence-item'],':')">             <dtml-if =
"_['sequence-index']=3D=3D0">                 <OPTION VALUE=3D"<dtml-var =
sequence-item>">             <dtml-else>                <dtml-var =
sequence-item>             </dtml-if>          </dtml-in>                =
</dtml-in>             </dtml-if>   </dtml-with></dtml-with>   </select> =
</fieldset> </td></TR><TR> <TD ALIGN=3D"LEFT" VALIGN=3D"TOP"> <INPUT =
TYPE=3D"BUTTON" NAME=3D"btnSelFILTRE" onclick=3D"selectFilter()" =
VALUE=3D"S=E9lectionner le FILTRE">   </TD>   <TD ALIGN=3D"LEFT" =
VALIGN=3D"TOP">  <INPUT TYPE=3D"BUTTON" NAME=3D"btnSupFILTRE" =
VALUE=3D"Supprimer le FILTRE">    </TD></tr>
</table></fieldset>  <input type=3D"hidden" name=3D"txtFILTRESsel" =
value=3D"">   <input type=3D"hidden" name=3D"txtFILTREind" value=3D"">   =
<input type=3D"hidden" name=3D"txtFILTRElib" value=3D""> =
</form><dtml-with users><dtml-with "_[user_name]">  <dtml-if "'FILTRE' =
in objectIds('Folder')">    <dtml-with FILTRE>      <dtml-in =
"objectItems()">        <dtml-with id>          <dtml-call =
"REQUEST.set('filDEB',PERDEBUT)">          <dtml-call =
"REQUEST.set('filFIN',PERFIN)">          <dtml-call =
"methodes.filDEBfilFIN(Sabine,REQUEST,users)">          <dtml-var =
Filter>        </dtml-with>       </dtml-in>    </dtml-with>  =
</dtml-if></dtml-with></dtml-with><div id=3D"objFILTER"></div><script =
LANGUAGE=3D"javascript">function selectFilter(){var P1;var P2;var Y2;var =
x;var i;var bon;var S;var el;if (document.all.LIGNES_DISPO.value !=3D =
null)   {   x =3D document.all.LIGNES_DISPO.selectedIndex;   P1 =3D =
document.all.LIGNES_DISPO.item(x).text;   P2 =3D =
document.all.LIGNES_DISPO.item(x).value;   bon =3D true;   for (i =3D 0; =
i < document.all.FILTRES_SEL.length ; i++)       {      =
document.all.FILTRES_SEL.selectedIndex =3D i;      Y1 =3D =
document.all.FILTRES_SEL.item(i).text;      if (P1 =3D=3D Y1)         {  =
        bon =3D false;         }         }     if (bon)      {      el =
=3D document.createElement("OPTION");      el.text =3D P1;      el.value =
=3D P2;      document.all.FILTRES_SEL.add(el)      =
document.all.FILTRES_SEL.selectedIndex =3D =
document.all.FILTRES_SEL.length - 1      =
document.all.LIGNES_DISPO.selectedIndex =3D =
document.all.LIGNES_DISPO.selectedIndex + 1      =
document.all.txtFILTREind.value =3D P2      =
document.all.txtFILTRElib.value =3D P1      }   else      {      =
alert("Ce Filtre est d=E9j=E0 saisi");      }   }else   {   alert("Vous =
devez s=E9lectionner un Filtre");   }
   S =3D "";   for (i =3D 0; i < document.all.FILTRES_SEL.length; i++)   =
   {      S =3D S + document.all.FILTRES_SEL.item(i).value + ":" + =
document.all.FILTRES_SEL.item(i).text;      if (i < =
document.all.FILTRES_SEL.length - 1)         {         S =3D S + ",";    =
     }      }   document.all.txtFILTRESsel.value =3D S;   =
//alert("submit");   =
document.all.frmFILTER.submit();}</script></dtml-if></dtml-with></dtml-wi=
th></body></html>
The method  Selectionner_FILTRES
<dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"><dtml-w=
ith users><dtml-with "_[user_name]">  <dtml-call =
"manage_changeProperties(FILTRESsel=3DtxtFILTRESsel)">  <dtml-if =
"'FILTRE' in objectIds('Folder')">  <dtml-else>    <dtml-call =
"manage_addFolder(id=3D'FILTRE')">  </dtml-if>  <dtml-with FILTRE>  =
<dtml-call "REQUEST.set('idFilter',txtFILTREind)">  <dtml-call =
"manage_addFolder(id=3DtxtFILTREind)">  <dtml-call =
"_[idFilter].manage_addProperty('VENDANT',' ', 'string')">  <dtml-call =
"_[idFilter].manage_addProperty('MISEENAVANT',' ', 'string')">  =
<dtml-call "_[idFilter].manage_addProperty('QUANTITE',' ', 'string')">  =
<dtml-call "_[idFilter].manage_addProperty('GIRAFE',' ', 'string')">  =
<dtml-call "_[idFilter].manage_addProperty('XY',' ', 'string')">  =
<dtml-call "_[idFilter].manage_addProperty('PROSPECTUS',' ', 'string')"> =
 <dtml-call "_[idFilter].manage_addProperty('PERDEBUT',' ', 'string')">  =
<dtml-call "_[idFilter].manage_addProperty('PERFIN',' ', 'string')">  =
<dtml-call "_[idFilter].manage_changeProperties(title=3DtxtFILTRElib)">  =
 </dtml-with></dtml-with></dtml-with><dtml-call =
"methodes.perDEBperFIN(Sabine,REQUEST,users)"><HTML><HEAD><META =
NAME=3D"GENERATOR" Content=3D"Zope"></HEAD><BODY =
onLoad=3D"frmLoad()"><Script Language =3D "javascript">function =
frmLoad(){s =3D new String("<dtml-var =
newFilter>");parent.right.document.all("objFILTER").insertAdjacentHTML('B=
eforeBegin', s);}</Script></BODY></HTML>
the method newFilter
<form action=3D'.' name=3D'frm<dtml-var txtFILTREind>' methode=3D'post' =
target=3D'hidden'><input type=3D'hidden' name=3D'indLIG' =
value=3D'<dtml-var txtFILTREind>'><fieldset Style=3D'Padding: =
4pt;'><legend><dtml-var txtFILTRElib> : </legend><table> <tr><td>Vendant =
Non Vendant</td>  <td>     <SELECT name=3D'selVendant' size=3D1>     =
<OPTION VALUE=3D'0'>Inactif     <OPTION VALUE=3D'1'>Oui     <OPTION =
VALUE=3D'2'>Non     </SELECT>  </td>  <td>Mise en Avant</td> <td>     =
<SELECT name=3D'selMiseEnAvant' size=3D1>     <OPTION =
VALUE=3D'0'>Inactif     <OPTION VALUE=3D'1'>Oui     <OPTION =
VALUE=3D'2'>Non     </SELECT>  </td>  </tr> <tr><td>Quantit=E9s =
gratuites</td>   <td>     <SELECT name=3D'selQteGra' size=3D1>     =
<OPTION VALUE=3D'0'>Inactif     <OPTION VALUE=3D'1'>Oui     <OPTION =
VALUE=3D'2'>Non     </SELECT>  </td>  <td>Girafe</td>   <td>     <SELECT =
name=3D'selGirafe' size=3D1>     <OPTION VALUE=3D'0'>Inactif     <OPTION =
VALUE=3D'1'>Oui     <OPTION VALUE=3D'2'>Non     </SELECT>  </td>  <TD =
ALIGN=3D'LEFT' VALIGN=3D'TOP'>  <INPUT TYPE=3D'SUBMIT' =
NAME=3D'Valider_FILTRE:method' VALUE=3D'Valider Filtre'>    </TD>   =
</tr> <tr>  <td>X pour Y</td>   <td>     <SELECT name=3D'selXY' =
size=3D1>     <OPTION VALUE=3D'0'>Inactif     <OPTION VALUE=3D'1'>Oui    =
 <OPTION VALUE=3D'2'>Non     </SELECT>  </td>  <td>Prospectus</td>   =
<td>     <SELECT name=3D'selProspectus' size=3D1>     <OPTION =
VALUE=3D'0'>Inactif     <OPTION VALUE=3D'1'>Oui     <OPTION =
VALUE=3D'2'>Non     </SELECT>  </td>  <TD>     <div Id=3D'tgt<dtml-var =
txtFILTREind>'></div>  </TD> </tr> <tr> <td> P=E9riode DEBUT</td>   <td> =
    <dtml-var selDEB></td>  <td>P=E9riode FIN</td>   <td>     <dtml-var =
selFIN>  </td>  <TD>   </TD> </tr></table></fieldset></form>
the initial frame
<HTML><HEAD></HEAD><frameset cols=3D"0,225,*" frameborder=3D"0">  <frame =
name=3D"hidden">  <frame name=3D"left" src=3D"<!--#var =
URL1-->/index-l_html">  <frame name=3D"right" src=3D"<!--#var =
URL1-->/Description/description_html"></frameset></HTML>
Principe
Each time we select a filter in the listbox the hidden method is called =
and a new form is inserted with insertAdjacentHTMLin the form without =
reloading the form. You can as you want newFilter Form.
the informations entered in the newFilter can be validated without =
reloading the form
'Valider_FILTRE:method' in the newFilter Form
<dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"><dtml-w=
ith users><dtml-with "_[user_name]">  <dtml-with FILTRE>    <dtml-call =
"REQUEST.set('idFilter',indLIG)">    <dtml-call =
"_[idFilter].manage_changeProperties(VENDANT=3DselVendant)">    =
<dtml-call =
"_[idFilter].manage_changeProperties(MISEENAVANT=3DselMiseEnAvant)">    =
<dtml-call "_[idFilter].manage_changeProperties(QUANTITE=3DselQteGra)">  =
  <dtml-call "_[idFilter].manage_changeProperties(GIRAFE=3DselGirafe)">  =
  <dtml-call "_[idFilter].manage_changeProperties(XY=3DselXY)">    =
<dtml-call =
"_[idFilter].manage_changeProperties(PROSPECTUS=3DselProspectus)">    =
<dtml-call "_[idFilter].manage_changeProperties(PERDEBUT=3DselDEBUT)">   =
 <dtml-call "_[idFilter].manage_changeProperties(PERFIN=3DselFIN)">  =
</dtml-with></dtml-with></dtml-with>
<HTML><HEAD><META NAME=3D"GENERATOR" Content=3D"Zope"></HEAD><BODY =
onLoad=3D"onLoad()"><Script Language =3D "javascript">function =
onLoad(){parent.right.document.all("tgt<dtml-var indLIG>").innerHTML =3D =
"(Enregistr=E9)";}</Script></BODY></HTML>
Hope this help
Gerard MULOT
EMail gerard.mulot@noos.fr




------=_NextPart_000_0007_01C15C23.859093A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4522.1801" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2><PRE>Herman wrote</PRE><PRE>I am trying =
to simply use the return (rfqNumber) from a Javascript script as
a variable in a DTML tag (see code below).  I've also tried placing the
Javascript code in-line to the DTML, as well as trying to encapsulating =
the
script in a DTML method.  None of this seems to work.  Yes, I am fairly =
new
to DTML (and Zope, for that matter).  I have seen articles on how to =
pass
arguments from DTML to Javascript functions, but not on how to use
Javascript returns in DTML.  Can anyone point, push, or drag me in the =
right
direction?
=20
Thanks in advance for any help.
=20
Here a sample</PRE><PRE>&lt;dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"&gt;<BR>=
&lt;html&gt;<BR>&lt;head&gt;<BR>&lt;dtml-var manageT&gt;<BR>&lt;link =
rel=3D"stylesheet" type=3D"text/css" =
href=3D"../sabine-r.css"&gt;<BR>&lt;title&gt;Filtre =
1&lt;/title&gt;<BR>&lt;/head&gt;<BR>&lt;body&gt;<BR>&lt;dtml-with =
users&gt;&lt;dtml-with "_[user_name]"&gt;<BR>&lt;dtml-if "PERIODESseltri =
=3D=3D ''"&gt;<BR>&lt;P align=3D"center"&gt;<BR>&lt;STRONG&gt; Vous =
devez s=E9lectionner les periodes en premier =
&lt;/STRONG&gt;<BR>&lt;/P&gt;<BR>&lt;dtml-else&gt;<BR>&lt;form =
name=3D"frmFILTER" action=3D"Selectionner_FILTRES" method=3D"post" =
target=3D"hidden"&gt;<BR>&lt;fieldset Style=3D"Padding: =
4pt;"&gt;<BR>&lt;legend&gt; Filtres disponibles pour l'Etude : =
&lt;/legend&gt;<BR>&lt;table&gt;<BR>&lt;tr&gt;<BR>&lt;dtml-with =
users&gt;&lt;dtml-with "_[user_name]"&gt;<BR>&nbsp; &lt;dtml-call =
"REQUEST.set('contract_id',CONTRACT.CONTRACT_NAME)"&gt; =
<BR>&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&nbsp;&lt;TD&gt;&lt;/TD&gt;<B=
R>&lt;/TR&gt;<BR>&lt;TR&gt;<BR>&nbsp;&lt;TD ALIGN=3D"LEFT" =
VALIGN=3D"TOP"&gt;<BR>&nbsp;&lt;fieldset Style=3D"Padding: =
4pt;"&gt;<BR>&nbsp;&nbsp; &lt;legend&gt; ------ Filtres disponibles =
------ &lt;/legend&gt;<BR>&nbsp;&nbsp; &lt;dtml-with =
users&gt;&lt;dtml-with =
"_[user_name]"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-if =
"LIGNESdispo =3D=3D =
0"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"manage_changeProperties(LIGNESdispo=3D1)"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-var "methodes.creLignes(sql, =
contract_id, user_name, =
REQUEST)"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-else&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-var =
"methodes.getLignes(user_name)"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; &lt;/dtml-if&gt;<BR>&nbsp;&nbsp; =
&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&nbsp;&nbsp; =
&lt;/fieldset&gt;<BR>&nbsp;&lt;/td&gt;<BR>&nbsp;&lt;TD ALIGN=3D"LEFT" =
VALIGN=3D"TOP"&gt;<BR>&nbsp;&nbsp; &lt;fieldset Style=3D"Padding: =
4pt;"&gt;<BR>&nbsp;&nbsp; &lt;legend&gt; ----- Filtres s=E9lectionn=E9es =
----- &lt;/legend&gt;<BR>&nbsp;&nbsp; &lt;select name=3D"FILTRES_SEL" =
size=3D"15"&gt;<BR>&nbsp;&nbsp; &lt;dtml-with users&gt;&lt;dtml-with =
"_[user_name]"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-if =
"_.len(FILTRESsel) &gt; 0"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-in "_.string.split(FILTRESsel,',')"&gt; =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-in =
"_.string.split(_['sequence-item'],':')"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-if =
"_['sequence-index']=3D=3D0"&gt; =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; &lt;OPTION VALUE=3D"&lt;dtml-var =
sequence-item&gt;"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-else&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-var =
sequence-item&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; =
&lt;/dtml-if&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; &lt;/dtml-in&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;/dtml-in&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dtml-if&gt;<BR>&nbsp;&nbsp; =
&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&nbsp;&nbsp; =
&lt;/select&gt;<BR>&nbsp;&lt;/fieldset&gt;<BR>&nbsp;&lt;/td&gt;<BR>&lt;/T=
R&gt;<BR>&lt;TR&gt;<BR>&nbsp;&lt;TD ALIGN=3D"LEFT" =
VALIGN=3D"TOP"&gt;<BR>&nbsp;&lt;INPUT TYPE=3D"BUTTON" =
NAME=3D"btnSelFILTRE" onclick=3D"selectFilter()" VALUE=3D"S=E9lectionner =
le FILTRE"&gt;&nbsp; <BR>&nbsp;&lt;/TD&gt; <BR>&nbsp; &lt;TD =
ALIGN=3D"LEFT" VALIGN=3D"TOP"&gt;<BR>&nbsp; &lt;INPUT TYPE=3D"BUTTON" =
NAME=3D"btnSupFILTRE" VALUE=3D"Supprimer le FILTRE"&gt;&nbsp; <BR>&nbsp; =
&lt;/TD&gt;<BR>&lt;/tr&gt;</PRE><PRE>&lt;/table&gt;<BR>&lt;/fieldset&gt;<=
BR>&nbsp; &lt;input type=3D"hidden" name=3D"txtFILTRESsel" =
value=3D""&gt; <BR>&nbsp; &lt;input type=3D"hidden" =
name=3D"txtFILTREind" value=3D""&gt; <BR>&nbsp; &lt;input =
type=3D"hidden" name=3D"txtFILTRElib" value=3D""&gt; =
<BR>&lt;/form&gt;<BR>&lt;dtml-with users&gt;&lt;dtml-with =
"_[user_name]"&gt;<BR>&nbsp; &lt;dtml-if "'FILTRE' in =
objectIds('Folder')"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;dtml-with =
FILTRE&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-in =
"objectItems()"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-with =
id&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-call =
"REQUEST.set('filDEB',PERDEBUT)"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"REQUEST.set('filFIN',PERFIN)"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"methodes.filDEBfilFIN(Sabine,REQUEST,users)"&gt;<BR>&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dtml-var =
Filter&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;/dtml-with&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;/dtml-in&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/dtml-with&gt;<BR>&nbsp; =
&lt;/dtml-if&gt;<BR>&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&lt;div =
id=3D"objFILTER"&gt;&lt;/div&gt;<BR>&lt;script =
LANGUAGE=3D"javascript"&gt;<BR>function selectFilter()<BR>{<BR>var =
P1;<BR>var P2;<BR>var Y2;<BR>var x;<BR>var i;<BR>var bon;<BR>var =
S;<BR>var el;<BR>if (document.all.LIGNES_DISPO.value !=3D =
null)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; x =3D =
document.all.LIGNES_DISPO.selectedIndex;<BR>&nbsp;&nbsp; P1 =3D =
document.all.LIGNES_DISPO.item(x).text;<BR>&nbsp;&nbsp; P2 =3D =
document.all.LIGNES_DISPO.item(x).value;<BR>&nbsp;&nbsp; bon =3D =
true;<BR>&nbsp;&nbsp; for (i =3D 0; i &lt; =
document.all.FILTRES_SEL.length ; i++) =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
document.all.FILTRES_SEL.selectedIndex =3D =
i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Y1 =3D =
document.all.FILTRES_SEL.item(i).text;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
if (P1 =3D=3D Y1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bon =3D =
false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; =
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; <BR>&nbsp;&nbsp; if =
(bon)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el =3D =
document.createElement("OPTION");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
el.text =3D P1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el.value =3D =
P2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
document.all.FILTRES_SEL.add(el)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
document.all.FILTRES_SEL.selectedIndex =3D =
document.all.FILTRES_SEL.length - 1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
document.all.LIGNES_DISPO.selectedIndex =3D =
document.all.LIGNES_DISPO.selectedIndex + =
1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.all.txtFILTREind.value =3D =
P2<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.all.txtFILTRElib.value =3D =
P1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; =
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert("Ce Filtre est d=E9j=E0 =
saisi");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; =
}<BR>else<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; alert("Vous devez =
s=E9lectionner un Filtre");<BR>&nbsp;&nbsp; }</PRE><PRE>&nbsp;&nbsp; S =
=3D "";<BR>&nbsp;&nbsp; for (i =3D 0; i &lt; =
document.all.FILTRES_SEL.length; i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S =3D S + =
document.all.FILTRES_SEL.item(i).value + ":" + =
document.all.FILTRES_SEL.item(i).text;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
if (i &lt; document.all.FILTRES_SEL.length - =
1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S =3D S + =
",";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; =
document.all.txtFILTRESsel.value =3D S;<BR>&nbsp;&nbsp; =
//alert("submit");<BR>&nbsp;&nbsp; =
document.all.frmFILTER.submit();<BR>}<BR>&lt;/script&gt;<BR>&lt;/dtml-if&=
gt;<BR>&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&lt;/body&gt;<BR>&lt;/html=
&gt;</PRE><PRE>The method  Selectionner_FILTRES</PRE><PRE>&lt;dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"&gt;<BR>=
&lt;dtml-with users&gt;&lt;dtml-with "_[user_name]"&gt;<BR>&nbsp; =
&lt;dtml-call =
"manage_changeProperties(FILTRESsel=3DtxtFILTRESsel)"&gt;<BR>&nbsp; =
&lt;dtml-if "'FILTRE' in objectIds('Folder')"&gt;<BR>&nbsp; =
&lt;dtml-else&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"manage_addFolder(id=3D'FILTRE')"&gt;<BR>&nbsp; =
&lt;/dtml-if&gt;<BR>&nbsp; &lt;dtml-with FILTRE&gt;<BR>&nbsp; =
&lt;dtml-call "REQUEST.set('idFilter',txtFILTREind)"&gt;<BR>&nbsp; =
&lt;dtml-call "manage_addFolder(id=3DtxtFILTREind)"&gt;<BR>&nbsp; =
&lt;dtml-call "_[idFilter].manage_addProperty('VENDANT',' ', =
'string')"&gt;<BR>&nbsp; &lt;dtml-call =
"_[idFilter].manage_addProperty('MISEENAVANT',' ', =
'string')"&gt;<BR>&nbsp; &lt;dtml-call =
"_[idFilter].manage_addProperty('QUANTITE',' ', 'string')"&gt;<BR>&nbsp; =
&lt;dtml-call "_[idFilter].manage_addProperty('GIRAFE',' ', =
'string')"&gt;<BR>&nbsp; &lt;dtml-call =
"_[idFilter].manage_addProperty('XY',' ', 'string')"&gt;<BR>&nbsp; =
&lt;dtml-call "_[idFilter].manage_addProperty('PROSPECTUS',' ', =
'string')"&gt;<BR>&nbsp; &lt;dtml-call =
"_[idFilter].manage_addProperty('PERDEBUT',' ', 'string')"&gt;<BR>&nbsp; =
&lt;dtml-call "_[idFilter].manage_addProperty('PERFIN',' ', =
'string')"&gt;<BR>&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(title=3DtxtFILTRElib)"&gt; =
<BR>&nbsp; =
&lt;/dtml-with&gt;<BR>&lt;/dtml-with&gt;&lt;/dtml-with&gt;<BR>&lt;dtml-ca=
ll =
"methodes.perDEBperFIN(Sabine,REQUEST,users)"&gt;<BR>&lt;HTML&gt;<BR>&lt;=
HEAD&gt;<BR>&lt;META NAME=3D"GENERATOR" =
Content=3D"Zope"&gt;<BR>&lt;/HEAD&gt;<BR>&lt;BODY =
onLoad=3D"frmLoad()"&gt;<BR>&lt;Script Language =3D =
"javascript"&gt;<BR>function frmLoad()<BR>{<BR>s =3D new =
String("&lt;dtml-var =
newFilter&gt;");<BR>parent.right.document.all("objFILTER").insertAdjacent=
HTML('BeforeBegin', =
s);<BR>}<BR>&lt;/Script&gt;<BR>&lt;/BODY&gt;<BR>&lt;/HTML&gt;<BR></PRE><P=
RE>the method newFilter</PRE><PRE>&lt;form action=3D'.' =
name=3D'frm&lt;dtml-var txtFILTREind&gt;' methode=3D'post' =
target=3D'hidden'&gt;&lt;input type=3D'hidden' name=3D'indLIG' =
value=3D'&lt;dtml-var txtFILTREind&gt;'&gt;&lt;fieldset =
Style=3D'Padding: 4pt;'&gt;&lt;legend&gt;&lt;dtml-var txtFILTRElib&gt; : =
&lt;/legend&gt;&lt;table&gt; &lt;tr&gt;&lt;td&gt;Vendant Non =
Vendant&lt;/td&gt;&nbsp; &lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SELECT =
name=3D'selVendant' size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;td&gt;Mise en Avant&lt;/td&gt; =
&lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SELECT name=3D'selMiseEnAvant' =
size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;/tr&gt; &lt;tr&gt;&lt;td&gt;Quantit=E9s =
gratuites&lt;/td&gt;&nbsp;&nbsp; &lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;SELECT name=3D'selQteGra' size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;OPTION VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;td&gt;Girafe&lt;/td&gt;&nbsp;&nbsp; =
&lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SELECT name=3D'selGirafe' =
size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;TD ALIGN=3D'LEFT' VALIGN=3D'TOP'&gt;&nbsp; =
&lt;INPUT TYPE=3D'SUBMIT' NAME=3D'Valider_FILTRE:method' =
VALUE=3D'Valider Filtre'&gt;&nbsp;&nbsp;&nbsp; &lt;/TD&gt;&nbsp;&nbsp; =
&lt;/tr&gt; &lt;tr&gt;&nbsp; &lt;td&gt;X pour Y&lt;/td&gt;&nbsp;&nbsp; =
&lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SELECT name=3D'selXY' =
size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;td&gt;Prospectus&lt;/td&gt;&nbsp;&nbsp; =
&lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SELECT name=3D'selProspectus' =
size=3D1&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'0'&gt;Inactif&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'1'&gt;Oui&nbsp;&nbsp;&nbsp;&nbsp; &lt;OPTION =
VALUE=3D'2'&gt;Non&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SELECT&gt;&nbsp; =
&lt;/td&gt;&nbsp; &lt;TD&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div =
Id=3D'tgt&lt;dtml-var txtFILTREind&gt;'&gt;&lt;/div&gt;&nbsp; =
&lt;/TD&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; P=E9riode =
DEBUT&lt;/td&gt;&nbsp;&nbsp; &lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-var selDEB&gt;&lt;/td&gt;&nbsp; &lt;td&gt;P=E9riode =
FIN&lt;/td&gt;&nbsp;&nbsp; &lt;td&gt;&nbsp;&nbsp;&nbsp;&nbsp; =
&lt;dtml-var selFIN&gt;&nbsp; &lt;/td&gt;&nbsp; &lt;TD&gt;&nbsp;&nbsp; =
&lt;/TD&gt; =
&lt;/tr&gt;&lt;/table&gt;&lt;/fieldset&gt;&lt;/form&gt;</PRE><PRE>the =
initial =
frame</PRE><PRE>&lt;HTML&gt;<BR>&lt;HEAD&gt;<BR>&lt;/HEAD&gt;<BR>&lt;fram=
eset cols=3D"0,225,*" frameborder=3D"0"&gt;<BR>&nbsp; &lt;frame =
name=3D"hidden"&gt;<BR>&nbsp; &lt;frame name=3D"left" src=3D"&lt;!--#var =
URL1--&gt;/index-l_html"&gt;<BR>&nbsp; &lt;frame name=3D"right" =
src=3D"&lt;!--#var =
URL1--&gt;/Description/description_html"&gt;<BR>&lt;/frameset&gt;<BR>&lt;=
/HTML&gt;</PRE><PRE>Principe</PRE><PRE>Each time we select a filter in =
the listbox the hidden method is called and a new form is inserted with =
insertAdjacentHTML<BR>in the form without reloading the form. You can as =
you want newFilter Form.</PRE><PRE>the informations entered in the =
newFilter can be validated without reloading the =
form</PRE><PRE>'Valider_FILTRE:method' in the newFilter =
Form</PRE><PRE>&lt;dtml-call =
"REQUEST.set('user_name',REQUEST.get('AUTHENTICATED_USER').name)"&gt;<BR>=
&lt;dtml-with users&gt;&lt;dtml-with "_[user_name]"&gt;<BR>&nbsp; =
&lt;dtml-with FILTRE&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"REQUEST.set('idFilter',indLIG)"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(VENDANT=3DselVendant)"&gt;<BR>&nbsp;=
&nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(MISEENAVANT=3DselMiseEnAvant)"&gt;<B=
R>&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(QUANTITE=3DselQteGra)"&gt;<BR>&nbsp;=
&nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(GIRAFE=3DselGirafe)"&gt;<BR>&nbsp;&n=
bsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(XY=3DselXY)"&gt;<BR>&nbsp;&nbsp;&nbs=
p; &lt;dtml-call =
"_[idFilter].manage_changeProperties(PROSPECTUS=3DselProspectus)"&gt;<BR>=
&nbsp;&nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(PERDEBUT=3DselDEBUT)"&gt;<BR>&nbsp;&=
nbsp;&nbsp; &lt;dtml-call =
"_[idFilter].manage_changeProperties(PERFIN=3DselFIN)"&gt;<BR>&nbsp; =
&lt;/dtml-with&gt;<BR>&lt;/dtml-with&gt;&lt;/dtml-with&gt;</PRE><PRE>&lt;=
HTML&gt;<BR>&lt;HEAD&gt;<BR>&lt;META NAME=3D"GENERATOR" =
Content=3D"Zope"&gt;<BR>&lt;/HEAD&gt;<BR>&lt;BODY =
onLoad=3D"onLoad()"&gt;<BR>&lt;Script Language =3D =
"javascript"&gt;<BR>function =
onLoad()<BR>{<BR>parent.right.document.all("tgt&lt;dtml-var =
indLIG&gt;").innerHTML =3D =
"(Enregistr=E9)";<BR>}<BR>&lt;/Script&gt;<BR>&lt;/BODY&gt;<BR>&lt;/HTML&g=
t;<BR></PRE><PRE>Hope this help</PRE><PRE>Gerard MULOT</PRE><PRE>EMail =
gerard.mulot@noos.fr</PRE><PRE>&nbsp;</PRE><PRE>&nbsp;</PRE><!--endarticl=
e--></FONT></DIV></BODY></HTML>

------=_NextPart_000_0007_01C15C23.859093A0--