AJAX: AjaxPost() gebruiken
Ik moet via Ajax een formulier posten. Ik ben daarbij verder gegaan met een huidige code die door een reeds vertrokken programmeur / Ajax expert is gemaakt.
Hij heeft de volgende code voor AjaxPost:
Code (php)
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
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
/* Roept een pagina aan via POST */
function ajaxPost( element, url, data ) {
var http_request = false;
/* Request sturen */
if( window.ActiveXObject ) { // IE
try { // Probeer via het MsXML2 object
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch( e ) { // Anders...
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch( e ) {}
}
}
else if( window.XMLHttpRequest ) { // Mozilla, Opera, etc...
http_request = new XMLHttpRequest();
}
if( !http_request ) {
return false;
}
// Checken of de response ok is
http_request.onreadystatechange = httpChange;
http_request.open('POST', url, true );
http_request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
http_request.send( data );
// Maak een object en zet hem in de array
if( http_request ) {
var http_req = new reqObject( '', http_request, element );
requests.push( http_req );
}
}
function ajaxPost( element, url, data ) {
var http_request = false;
/* Request sturen */
if( window.ActiveXObject ) { // IE
try { // Probeer via het MsXML2 object
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch( e ) { // Anders...
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch( e ) {}
}
}
else if( window.XMLHttpRequest ) { // Mozilla, Opera, etc...
http_request = new XMLHttpRequest();
}
if( !http_request ) {
return false;
}
// Checken of de response ok is
http_request.onreadystatechange = httpChange;
http_request.open('POST', url, true );
http_request.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
http_request.send( data );
// Maak een object en zet hem in de array
if( http_request ) {
var http_req = new reqObject( '', http_request, element );
requests.push( http_req );
}
}
Nu is mijn vraag hoe ik dat moet aanroepen in het formulier.
Op de oude manier die ik ken doe ik het als volgt:
<FORM ACTION="./form/formmail.php?mode=belmij" METHOD="POST">
Maar met Ajax schijnt dat anders te werken.
Ik heb hem al als volgt geprobeerd maar dan doet hij helemaal niks (letterlijk):
<FORM ACTION="" onsubmit="javascript: ajaxPost( inhoud, ./form/formmail.php?mode=belmij, data)" METHOD="POST">
Daarbij is inhoud de div die ik wil gebruiken en de url voor de pagina waar hij de data naar toe moet posten. Bij data weet ik niet wat ik in moet vullen. Ik kan hiervoor niks vinden op internet waar ik wijzer van wordt.
Heeft iemand enig idee hoe ik dit het beste op kan lossen?
Mvg,
Gerben
zoiets
Ik weet niet of je het al gebruikt, maar firebug (extensie van firefox) is zeer handig als je bezig bent met javascript
Beter gebruik je gewoon Ik weet niet of je het al gebruikt, maar firebug (extensie van firefox) is zeer handig als je bezig bent met javascript
Ik kan geen Firefox gebruiken hier op het werk. Company Policy is dat we Microsoft georienteerd zijn en geen alternatieven op de pc mogen hebben draaien :|
Ik heb het gegeven voorbeeld bekeken, maar kan daar verder niet zoveel uithalen.
Daarnaast lijkt het me makkelijker om gewoon via de bovenstaande code te blijven werken. Dat is namelijk een soort van library waar alle veelvoorkomende AJAX functies in staan en dergelijke, waaronder de ajaxPost methode.
Echter zou het naar mijn mening niet moeilijk moeten zijn om een form simpel te posten.
Echter dus niet. Ben vandaag de gehele dag al bezig met googlen naar AjaxPost voorbeelden echter krijg ik daarbij alle code die ik al heb (bovenstaande). Nergens maar dan ook nergens vind ik een voorbeeld van hoe dit in een form tag wordt aangeroepen.
Ik heb nu dit:
<FORM action="/boordcomputer/form/formmail.php?mode=belmij" onSubmit="ajaxPost('inhoud', ’this.action’, 'formBelMij')" METHOD="POST" name='formBelMij' id='formBelMij'>
Het formulier werkt nu netjes en wordt gepost, maar echter op een nieuwe pagina. Terwijl het ajax er juist voor moet zorgen dat hij het verwerken toont in de div "inhoud", maar dat lijkt hij niet te pakken.
iemand anders enig idee over de oplossing voor dit nu toch al behoorlijk frustrerend probleempje :D
http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Edit: ik scroll wat naar beneden en zag dat je in de thread een post had geplaatst :-D
Gewijzigd op 01/01/1970 01:00:00 door Jos