You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Roberto Marra <rm...@montefiore.ch> on 2005/05/19 12:15:17 UTC

Re: CForms & value of field...[SOLVED]

Hi all,
probably I didn't explain clear myself, but I founded the way. Just use

cocoon.request["<nameofField>"]

Sorry but Im still a newbie & stuff that for you are already clear for me are not.
Thanx in any case

Cheers
Roberto



  I mean... sorry if I didn't clarify myself...
  Im looking at the samples "../block/forms/flow/binding_example.js". This is the flowscript:

  function form2bean(form) {
      var bean = new Packages.org.apache.cocoon.forms.samples.Form2Bean();

      //fill bean with some data to avoid users having to type to much
        bean.setEmail("yourname@yourdomain.com");
        bean.setIpAddress("10.0.0.1");
        bean.setPhoneCountry("32");
        bean.setPhoneZone("2");
        bean.setPhoneNumber("123456");
        bean.setBirthday(new java.util.Date());
        bean.setSex(Packages.org.apache.cocoon.forms.samples.Sex.MALE);
      
        var contact = new Packages.org.apache.cocoon.forms.samples.Contact();
        contact.setId("1");
        contact.setFirstName("Roberto");
        contact.setLastName("Marra");
        contact.setPhone("+41916104455");
        contact.setEmail("rmarra@montefiore.ch");
        
      bean.addContact(contact);

      
      form.load(bean);
      form.showForm("form2-display-pipeline");
      form.save(bean);

      cocoon.sendPage("form2bean-success-pipeline", { "form2bean": bean });
  }

  The bean is used to fill-up the field of the form. What I need is retrive the value of the field of the form. I already did something like 

  bean.setEmail("cocoon.parameters["email"]");

  But as I wrote if I got 300field I would like to find another solution...

  hope that I clarify..

    ----- Original Message ----- 
    From: Roberto Marra 
    To: users@cocoon.apache.org 
    Sent: Wednesday, May 18, 2005 4:14 PM
    Subject: Re: CForms & value of field...


    Hi Jeroen & thanx.
    I had a look of the OJB samples. Let say that now my main target is not to write to db but to have the value of the CForm available in the flowscript & I want to do that via binding. So in the sitemap I got that now:

    <map:match pattern="regContatti">
    <map:call function="handleForm">
    <map:parameter name="function" value="storeContact"/>
    <map:parameter name="form-definition" value="forms/definitions/contatti.xml"/>
    <map:parameter name="bindingURI" value="binding/contatti/bindContatti.xml"/>
    </map:call>
    </map:match>

    & in the flowscript
    ...
       var bindingFile =  cocoon.parameters["bindingURI"];
       var bean = new Packages.org.mf.ContactBean();

       form.createBinding(bindingFile);
       form.save(bean);

       System.out.println("test:"+form.lookupWidget("ragSoc").getValue());

    ...

      but "test" return me null. So for sure I didn't understand something...or more...

    Cheers
    ROberto




      ----- Original Message ----- 
      From: Jeroen Reijn 
      To: users@cocoon.apache.org 
      Sent: Wednesday, May 18, 2005 9:52 AM
      Subject: RE: CForms & value of field...


      Hi Roberto,

      I think binding the form could be a great solution for your problem. You could check out the OJB samples to see how to write to the DB.

      Greetz,

      Jeroen
        -----Original Message-----
        From: Roberto Marra [mailto:rmarra@montefiore.ch]
        Posted At: Wednesday, May 18, 2005 9:23 AM
        Posted To: Cocoon User List
        Conversation: CForms & value of field...
        Subject: CForms & value of field...


        Hi all,
        I guess I missed something about the process of get value from the CForm to the flowscript. So hope somebody can clarify me it.

        I got a CForm definition file & a template. Then in my pipeline I got a match pattern that call a function & pass the parameter of the CForm in this way:

             <map:parameter name="ragSoc" value="{request-param:ragSoc}"/>
             <map:parameter name="indirizzo" value="{request-param:indirizzo}"/>
             <map:parameter name="cap" value="{request-param:cap}"/>
             <map:parameter name="citta" value="{request-param:citta}"/>
             <map:parameter name="nazione" value="{request-param:nazione}"/>
             <map:parameter name="telefono" value="{request-param:telefono}"/>

        then, in my flowscript I do that:

            ragSoc    = cocoon.parameters["ragSoc"];
            indirizzo = cocoon.parameters["indirizzo"];
            cap       = cocoon.parameters["cap"];
            citta     = cocoon.parameters["citta"];
            nazione   = cocoon.parameters["nazione"];
            telefono  = cocoon.parameters["telefono"];
            email     = cocoon.parameters["email"];
            lingua    = cocoon.parameters["lingua"];
            pwd       = cocoon.parameters["pwd"];
            confpwd   = cocoon.parameters["confpwd"];

        & then I call a Java method & I do what I have to do (in this case write the value in the db). So, that could be interesting for one CForm, but Im making an application programm, with a lot of CForms with a lot of field. Im sure I have not to send everytime all the field in this way to flowscript, Im sure there is an elegant way to do that. Is the binding file the solution? I saw different example of binding but in the example the binding is used most of the time to write data in the CForms..

        Any suggestion?

        Thanx in advance
        Roberto