Toon posts:

[JS/Prototype] Posten via Ajax, hoe form values op halen??

Pagina: 1
Acties:
  • 548 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hi,

Ik heb een lightbox met een formulier die na het submitten via een Ajax request de gegevens moet door pasen naar een php script. Nu lukt het me alleen niet om de form values te benaderen via mn script.

De lightbox lukt, daarin heb ik een frame en een knopje die de js functie aanroept (waarin de ajax request gaat plaats vinden):

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<form id="form_insert" name="guestbook_form">
    <h1>Sign My Guestbook</h1>
    <ul>
        <li>
            <label>Name</label><br />
            <input type="text" name="name" id="gb_name" size="40" />
        </li>
        <li>
            <a href="includes/insert_gb.php" class="lbAction" rel="insert"><button>Submit</button></a> 
        </li>
    </ul>
</form>


Nu ziet de insert functie er als volgt uit:

JavaScript:
1
2
3
4
5
6
7
8
9
10
    insert: function(e){
       link = Event.element(e).parentNode;
       Element.remove($('lbContent'));
        var params = Form.getInputs('guestbook_form');
       var myAjax = new Ajax.Request(
              link.href,
              {method: 'get', parameters: params, onComplete: this.processInfo.bindAsEventListener(this)}
       );
     
    },


Alleen lukt het me dus op geen enkele manier om die gegevens uit dat form te trekken. Heb ook al de prototype functie serialize geprobeerd, wat ik gevonden heb op hun site:

JavaScript:
1
2
3
new Ajax.Request('/some_url', {
  parameters: $('id_of_form_element').serialize(true)
  });


Maar steeds de melding: dat het Form geen properties zou kunnen hebben.

Iemand een idee?

Thx

  • Cartman!
  • Registratie: April 2000
  • Niet online
hier staat meer info over hoe je Form.getInputs moet gebruiken :
http://www.prototypejs.org/api/form/getInputs

Verwijderd

Topicstarter
nog steeds op allerlei manieren: form has no properties.

snap er geen hol van... heb al op allerlei sites over prototype gekeken :(

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:27

crisp

Devver

Pixelated

Geef je form enkel een ID en geen name, da's dubbelop, overbodig en foutgevoelig - zeker als ze niet gelijk aan elkaar zijn ;)

Intentionally left blank


Verwijderd

Topicstarter
ok crisp, maar dat lijkt me meer goed practice, want het resulteerd namelijk nog steeds in de bekende: form has no properties :(

  • Cartman!
  • Registratie: April 2000
  • Niet online
Wat is 'Form' ? Gebruik eens console.log(Form); in combinatie met Firebug (Firefox plugin). Beetje meer onderzoek mag wel, die documentatie link die ik net gaf is namelijk vrij duidelijk.

Verwijderd

Topicstarter
Uiteindelijk toch werkend gekregen.... met code waarvan ik op zeker weet dat deze eerder niet had gewerkt..Voor de compleetheid mocht iemand er nog een keer naar zoeken:

JavaScript:
1
2
3
4
5
6
7
8
    insert: function(e){
            var form = $('form_insert');
            var params = form.serialize(true);
            Element.remove($('lbContent'));
            var myAjax = new Ajax.Request(
                  'includes/insert_gb.php',
                  {method: 'post', parameters: params, onComplete: this.submitResponse.bindAsEventListener(this)})
},
Pagina: 1