Na het hele internet afgestruimd te zijn, heb ik maar besloten mijn probleem hier voor te leggen. Ik ben bezig met een loginsysteem. Nu wil ik dit loginsysteem in 1e instantie via AJAX (prototype framework) controleren op juistheid. Als de gebruikersnaam/wachtwoord niet overeenkomen, krijgt de gebruiker in een foutmelding via Ajax.request (ofwel, geen pagina refresh nodig).
Dit alles gaat perfect, en levert geen problemen op. Het probleem echter, is dat bij een succesvolle login, ik de cookies moet plaatsen. Hiervoor heb ik een volledige pagina refresh nodig, je kan immers geen cookies plaatsen binnen een ajax.request ivm geparste HTML).
Nu probeer ik dus, als de login correct is, het formulier te submitten. Alleen herkent deze de functie .submit(); niet.
Code van formulier
Code van aangeroepen functie in het formulier
De bedoeling is dus dat het formulier binnen de gerequeste ajaxfile (in dit geval: login_check.php) gesubmit wordt.
Code in login_check.php na succesvolle validatie
Het vreemde is, is dat als ik bv $('formid').reset(); of iets anders invoer, het wel opgepakt wordt door het formulier en gewoon werkt. Hij wil gewoon niet submitten. Is het onmogelijk wat ik probeer te bewerkstelligen of pak ik het helemaal verkeerd aan?
Dit alles gaat perfect, en levert geen problemen op. Het probleem echter, is dat bij een succesvolle login, ik de cookies moet plaatsen. Hiervoor heb ik een volledige pagina refresh nodig, je kan immers geen cookies plaatsen binnen een ajax.request ivm geparste HTML).
Nu probeer ik dus, als de login correct is, het formulier te submitten. Alleen herkent deze de functie .submit(); niet.
Code van formulier
code:
1
| <input type='submit' value='Invoeren' onClick="checkForm('formid', 'login_check'); formFocus = false; return false;" name='submit' /> |
Code van aangeroepen functie in het formulier
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function checkForm(formID, ajax_url)
{
var formName = formID;
var forward_url = '../ajax/' + ajax_url + '.php';
$('notice').innerHTML = '<img title=\"Bezig met laden...\" src=\"../img/loader.gif\" /> Bezig met laden...';
new Ajax.Updater('notice', forward_url,
{
asynchronous:true,
evalScripts:true,
parameters:Form.serialize(formName)
});
} |
De bedoeling is dus dat het formulier binnen de gerequeste ajaxfile (in dit geval: login_check.php) gesubmit wordt.
Code in login_check.php na succesvolle validatie
code:
1
2
3
4
5
6
7
8
9
| if ($errorFound == false)
{
//Forward
?>
<script type='text/javascript'>
$('formid').submit();
</script>
<?
} |
Het vreemde is, is dat als ik bv $('formid').reset(); of iets anders invoer, het wel opgepakt wordt door het formulier en gewoon werkt. Hij wil gewoon niet submitten. Is het onmogelijk wat ik probeer te bewerkstelligen of pak ik het helemaal verkeerd aan?