Toon posts:

[AJAX] uitleg vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig om mezelf een beetje AJAX te leren. Ik begin al aardig te snappen hoe het in grote lijnen werkt. Toch kom ik er nog niet uit. Ik ben bezig een simpel formuliertje te maken, die de ingevoerde waarde laat zien na het klikken op submit. Ik heb de tutorial op http://www.captain.at/howto-ajax-form-post-get.php gebruikt.

Nu zit ik met het volgende stukje code:

code:
1
2
3
4
5
6
7
8
9
10
11
function get(obj) {
      var getstr = "?";
      for (i=0; i<obj.childNodes.length; i++) {
         if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
         }   
      }
      makeRequest('get.php', getstr);
   }

Het script werkt prima, alleen de output naar get.php is een array. Hiervan wil ik een losse waarde maken, als dit mogelijk is, maar ik snap niet echt wat bovenstaand stukje code nu doet, en wat het nut is van de for-lus.

Zou iemand mij uit willen leggen wat dit stukje code doet?? Het formulier is als volgt:

code:
1
2
3
4
5
<form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
<input type="text" name="myfield" value="teststring"><br>
<br>
<input type="submit" name="button" value="Normal Submit Button">
</form>

de rest van de AJAX code is niet nodig denk ik, dat is alleen de functie 'makeRequest' en nog een alert functie bij foutmelding.

Alvast hartelijk bedankt, SAplayer

  • Evilbee
  • Registratie: November 2002
  • Laatst online: 19:30
Die for loop loopt door alle elementen die in je obj zitten.

Dus alle elementen die in je formulier zitten.

[ Voor 29% gewijzigd door Evilbee op 09-12-2006 17:31 ]

LinkedIn - Collega worden?


Verwijderd

Je functie is om alle INPUT velden met 'type=text' te pakken, en die tot een string te maken die er zo uitziet:
?textveldnaam=textveldwaarde&textveldnaam2=textveldwaarde2&blabla=bla

een standaard GET url zeg maar dus :)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op zaterdag 09 december 2006 @ 17:33:
Je functie is om alle INPUT velden met 'type=text' te pakken, en die tot een string te maken die er zo uitziet:
?textveldnaam=textveldwaarde&textveldnaam2=textveldwaarde2&blabla=bla

een standaard GET url zeg maar dus :)
Een POST-body is ook in dat formaat hoor ;) (maar dan zonder ? ervoor, dus ik denk dat het hier idd om een GET gaat)

Ik mis alleen url-encoding, dus de geposte functie is wat dat betreft al buggy to begin with...
offtopic:
argh, de rest van de code van die tutorial is net zo brak, not to mention de XSS bug :X

[ Voor 15% gewijzigd door crisp op 09-12-2006 17:40 ]

Intentionally left blank


Verwijderd

Topicstarter
bedankt voor de antwoorden :P Ik kon geen ander AJAX script vinden dat een formulier post en niet hetzelfde is als deze. Is AJAX ook nog op een andere manier te gebruiken dan?? Waarom is dit script buggy??

Verwijderd

AJAX is niets meer dan Javascript, (X)HTML en XML. Leer eens hoe JavaScript werkt, html en get/post requests naar een server. Dat je dit dan tot 1 geheel gooit is een later stadium.

Je begint toch niet met autorijden als peuter om hierna op je 18e pas te leren fietsen? Ook moet je eerst kunnen lopen voordat fietsen zin heeft.

Ik schrijf mijn scripts altijd zelf, of ik de taal nou ken of niet. Ik leer adhv voorbeelden en werkende scripts op internet, en hiermee ga ik mijn eigen script bouwen. Net zolang tot ik de taal ken en mijn script gebouwd heb (natuurlijk ook met informatieve sites met achtergrondinformatie ipv alleen voorbeelden).

Er is voldoende informatie over JavaScript te vinden, bijvoorbeeld op QuirksMode of bergen andere sites (zie de faq van W&G).

  • user109731
  • Registratie: Maart 2004
  • Niet online
Wat crisp zegt dus, met die steekwoorden kun je toch zelf wel wat Googlen dan :)?
In ieder geval, je kunt niet zomaar alle input over de lijn sturen, dus dat moet je eerst encoden, zodat de niet-toegestane tekens worden omgezet in wel-toegestane zeg maar.

Wat er in dat script ook gebeurt is dat er user-input word verzonden naar de server, en dat diezelfde input ongecontroleerd weer word teruggegeven. Stel dat die input een script bevat die alle cookies doorstuurt naar een ander domein..., en dat is maar een simpel voorbeeld :)

Vertrouw nooit iets wat vanaf de client komt :)

Verwijderd

Topicstarter
@KingOfDos:
Zo probeer ik nu dus ook Javascript/AJAX te leren, maar er zijn maar weinig tutorials om een beetje te begrijpen hoe het in zijn werk gaat, en zo kwam ik dus bij dit stukje code. Omdat het werke, vroeg ik me dus af HOE het werkte. Bedankt voor je reactie, ik zal even wat informatie opzoeken...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Dit lijkt me eerder iets voor Webdesign, Markup & Clientside Scripting, aangezien het toch vooral om de clientside kant van AJAX gaat. :) Waar hoort mijn topic?

PRG>>WEB

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • StevenK
  • Registratie: Februari 2001
  • Nu online
Verwijderd schreef op zaterdag 09 december 2006 @ 19:07:
@KingOfDos:
Zo probeer ik nu dus ook Javascript/AJAX te leren, maar er zijn maar weinig tutorials om een beetje te begrijpen hoe het in zijn werk gaat, en zo kwam ik dus bij dit stukje code. Omdat het werke, vroeg ik me dus af HOE het werkte. Bedankt voor je reactie, ik zal even wat informatie opzoeken...
imho zijn er genoeg tutorials. Het uitgangspunt van AJAX technologie is het gebruik van een http request object, waarmee je informatie van de server naar de client haalt, zonder de pagina te refreshen.

Zelf ben ik met http://visummedia.com/art...ate-a-form-with-ajax.html er goed uitgekomen.

Was advocaat maar vindt het juridische nog steeds leuk

Pagina: 1