Ajax post probleem/fout

Pagina: 1
Acties:
  • 435 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 23:33
Beste Tweakers,

Ik ben al een tijdje Ajax aan het leren, het is me al gelukt om een request uit een bestand (txt) te halen en een request naar een php bestand via GET.

Maar nu zit ik met het volgende probleem.
Ik krijg het maar niet voor elkaar om te posten.

Weet iemand mischien het probleem?

Alvast heel erg bedankt, Kevin :)

Ajax.html:
HTML: Ajax.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<html>
<head>
<title>Ajax les weetikveel by Kevin</title>
</head>
<script type="text/javascript">
    function makeXmlHttp(){
        var xmlhttp = null;
        if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
        }
        else
        {
            try
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                window.alert("Sorry, uw browser ondersteunt de XMLHTTP object request van kevin niet");
            }
        }
        return xmlhttp;
    }
    
    function uitvoeren()
    {
        var xmlhttp = makeXmlHttp();
        xmlhttp.open("POST", "post.php", true);
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        
        document.getElementById("verander").innerHTML = "<img src='loading.gif' title='Bezig met laden...' /> Laden....";
        xmlhttp.onreadystatechange = function()
        {
            if(xmlhttp.readyState == 4)
            {
                if(xmlhttp.status == 200)
                {
                    window.alert(xmlhttp.responseText);
                    document.getElementById("verander").innerHTML = xmlhttp.responseText;
                }
                else
                if(xmlhttp.status == 404)
                {
                    window.alert("ERR 404: Kan file niet aanroepen");
                }
            }
        }
        xmlhttp.send(document.form);
    }
    </script>
<body>
    <div id="verander">Posting data</div>
        <form name = "form" id="form" />
        <input type="text" name="veld" />
        <input type="button" onclick="uitvoeren();" value="Verstuur">
    </form>
</body>
</html>


PHP: post.php
1
2
3
4
5
6
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
    echo $_POST["veld"];
}
?>

Acties:
  • 0 Henk 'm!

  • Mebus
  • Registratie: September 2006
  • Laatst online: 10-09 19:30
waarom niet gewoon een framework gebruiken? (mootools,jquery)

BABYMETAL LoL - Twitch


Acties:
  • 0 Henk 'm!

  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 23:33
Mebus schreef op zondag 27 juni 2010 @ 20:01:
waarom niet gewoon een framework gebruiken? (mootools,jquery)
Ik gebruikte achter al jQuery maar nu wil ik het gewoon helemaal zelf maken.
En ik vond het wel een leuke uitdaging.

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 07:59
Hier staat het allemaal erg uitgebreid uitgelegd: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

Acties:
  • 0 Henk 'm!

  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 23:33
Heb het doorgelezen/genomen.
Grootdeels had ik al, maar lees ik het nu goed dat ik JSON moet gebruiken?
Of kan het ook gewoon zonder?

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 07:59
Kan ook gewoon zonder, zoals ook in het document verder staat beschreven. Maar dan mag ik aannemen dat het script van je nu wel werkt?

Acties:
  • 0 Henk 'm!

  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 23:33
Nee, in die tutorial lijkt het wel of het nog gewoon met GET gaat ipv POST.
Aangezien ik bij de var 'params' ?bla&blaat=1&enz=lol ziet staan...

Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Regel 48:
JavaScript:
1
xmlhttp.send(document.form);

Dit werkt niet.
Je moet net als bij GET de parameters hier als text meegeven met (param1=value&param2=value)

[ Voor 5% gewijzigd door Juup op 27-06-2010 22:00 ]

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


Acties:
  • 0 Henk 'm!

  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 23:33
Juup schreef op zondag 27 juni 2010 @ 21:59:
Regel 48:
JavaScript:
1
xmlhttp.send(document.form);

Dit werkt niet.
Je moet net als bij GET de parameters hier als text meegeven met (param1=value&param2=value)
Dus bijvoorbeeld: Gebruikersnaam=Kevin&wachtwoord=blaat

En dan moet je het in post.php zo uitlezen:

PHP:
1
echo $_POST["gebruikersnaam"];


of heb ik dit verkeerd?


Edit: Ik zie dat dat nu dus werkt, maar nu kom ik weer bij het volgende probleem.
Hoe krijg ik de data in de '.send("param=HOEKRIJGIKHIERDEPOSTDATA");' string?

Nog een edit:
Ik heb het nu zo opgelost:
code:
1
xhttp.send("param="+form.veld.value);


Als het beter kan hoor ik het graag!

[ Voor 26% gewijzigd door kevinkrs op 27-06-2010 22:22 ]


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:31

MueR

Admin Tweakers Discord

is niet lief

Het is leuk geweest. We zijn hier niet om je handje vast te houden bij elke stap. Van de honderdduizenden tutorials moet je toch makkelijk een basaal werkend ajax ding kunnen maken. Ik wil je vragen de Quickstart en Webdesign, Markup & Clientside Scripting Beleid nog eens goed door te lezen. Dit topic gaat dicht.

Anyone who gets in between me and my morning coffee should be insecure.

Pagina: 1

Dit topic is gesloten.