Hoi,

Ik wil via Mootools een form verzenden. Dit gaat goed, teminsten, hij maakt een request.

Hier mijn javascript:

$('forgotPass').addEvent('submit', function(e) {
					e.stop();
					var log = $('forgotpass-container').empty().addClass('ajax-loading');
					this.set('send', {onComplete: function(response) { 
						log.removeClass('ajax-loading');
						log.set('html', response);
					}});
					this.send();
				});


mijn html formpje

<div class="forgotpass-input" id="forgotpass-div">
							<div id="forgotpass-container">
								<form id="forgotPass" action="ajax/forgotpass.ajax.php" method="post">
									<input type="text" name="email" id="email" value="E-mail adres" />
									<div class="login-submit"> 
										<input type="submit" name="btnForgotPass" value="Verzend" /> 
									</div>
								</form>
							</div>
						</div>


Hij verzend dus de gegevens naar mijn forgotpass.ajax.php. Ik controleer in dit script of er een POST request is geweest. Dit geeft true terug, toch zijn er totaal geen gegevens mee verzonden. De $_POST is leeg!!

forgotpass.ajax.php

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	echo 'POST';
		print "<pre>".print_r($_POST, true)."</pre>";
}

if($_SERVER['REQUEST_METHOD'] == 'GET')
{
	echo 'GET';
}
?>


Weet iemand wat ik fout doe?
Bump.
Raar, je doet het zo te zien volgens de voorbeelden. Ik heb geen idee wat je fout doet...
Je kunt in firebug een breakpoint op die this.send() zetten om te kijken of ie wel data heeft.
Verder vind ik persoonlijk jQuery veel duidelijker, handiger en simpeler in dit soort dingen.
Het rare is, dat het voorbeeld wat ik gedownload heb perfect werk. Zodra ik het in mijn systeem implementeer krijg ik een lege array terug.

Dus, hij komt in de if voor request method post. Doet de print_r($_POST) en krijg als result terug


Array
(
)


Haal ik de ajax er tussen uit, en laat ik het gewoon submitten naar die pagina, dan stuurt hij de data wel gewoon mee.

Moet ik misschien de method via get laten werken?
Dat zou, lijkt mij, geen verschil mogen uitmaken.
Je kunt ook eens een [php]var_dump[/php] van $_REQUEST doen, helemaal bovenaan, om te kijken of er inderdaad wel ietst komt.

Ik heb even bij je site gekeken, het probleem zit hem in de javascript, er wordt sowieso niks mee gestuurd.
Karl,

Het lijkt mij ook onlogisch dat het een verschil zou moeten uitmaken.

Iig output van var_dump($_REQUEST);


array(0) {
}


Helemaal niks.

En waar in het javascript? Ik heb meerdere javascript erin zitten, werken stukken code elkaar misschien een beetje tegen?

Ik heb al het overige javascript eruit gehaalt. En het probleem blijft bestaan.
Ik denk dat het aan:
var log = $('forgotpass-container').empty().addClass('ajax-loading');
ligt, want als ik in firebug:
$('forgotPass').send()
doe dan krijg ik terug:
<pre>array(2) {

  ["email"]=>

  string(4) "test"

  ["btnForgotPass"]=>

  string(7) "Verzend"

}

</pre>POST<pre>Array

(

    [email] => test

    [btnForgotPass] => Verzend

)

</pre>
Hmm klinkt logisch. Dus die .empty zorgt ervoor dat er niks word meegestuurd oid? Is er een andere manier om de div leeg te maken?
Pepijn schreef op 03.05.2009 16:00
Hmm klinkt logisch. Dus die .empty zorgt ervoor dat er niks word meegestuurd oid? Is er een andere manier om de div leeg te maken?

Geen id, ik zou eerst testen of dát het wel is.
Verder ben ik pro jQuery, dus het enige wat ik je kan aanraden is om jQuery te gaan gebruiken.
Het werkt, zolang ik die .empty() er maar uit laat blijkt het te werken. Ik moet dus eigenlijk gewoon even iets gaan prutsen met display en divjes wil ik die empty eruit houden.

Mijn dank is groot.

Reageren