Ey, ik ben nu bezig met een formulier dat dmv javascript gevalideerd moet worden. Ik gebruik het framework mootools maar als iemand een oplossing weet zonder mootools of met een ander framework dan is dat ook welkom.
Wat ik probeer is om een formulier te submitten dmv ajax wat me ook lukt, ik heb een php pagina waar ik alle validaties doe en die stop ik een array met 2 keys, de eerste is het "hoofdstuk" en de 2de key is de naam van het veld. Nu genereer ik dmv mootools een div onder de textbox maar daar moet nu de fout die in de array staat als text in die div komen te staan, maar hoe doe ik dat? Ik weet dus niet hoe ik de php array in de javascript file ga kunnen gebruiken.
Post de relevante code even op plaatscode als je wilt. Verder, ik ben niet bekend met mootools maar wanneer je van ajax de waardes terug krijgt zou je met een meegegeven id gewoon het volgende kunnen doen toch:
$('intakeform').addEvent('submit', function(event) {
//Prevents the default submit event from loading a new page.
// Dit stuk komt van de demo site op mootools zelf
event.stop();
//Empty the log and show the spinning indicator.
var log = $('log_res').empty().addClass('ajax-loading');
//Set the options of the form's Request handler.
//("this" refers to the $('myForm') element).
this.set('send', {url: 'intake.php', method: 'post', onComplete: function(response) {
log.removeClass('ajax-loading');
log.set('html', response);
}});
//Send the form.
this.send();
//Hier genereer ik nieuwe div en gooi een img achter de textbox
$('aanmelder-tussenvoegsel').adopt(new Element('img', {src: '/resources/img/exclamation.gif', alt: 'exclamation'}));
var error = new Element('div', {class: 'error', text: 'Test'}).setStyle('display', 'block').inject('aanmelder-tussenvoegsel', 'after');
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// hier even xmlHttp.responseText splitten naar een array.
document.getElementById(array[0]).innerHTML = array[1];
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
// hier even xmlHttp.responseText splitten naar een array.
Zowieso kan ik nu geen hele verhalen gaan typen i.v.m mijn stage maar ben zeker bereid te helpen hoor.. ik ben namelijk ook bij hetzelfde punt als jij en was ook hulp nodig.
je div naam heeft als id: aanmelder-voornaam
Nu moet je met AJAX die NAAM + VALUE meegeven. dus dan wordt de link van de get bijvoorbeeld:
Voor dit soort problemen kan je beter gebruik maken van JSON response ipv html response. Hierdoor genereer je met php een soort van array die je met JS kan uitlezen. Ik weet niet hoe het exact in zijn werk gaat, dat zal je even zelf moeten uitvogelen.
@jvs, hoezo kan ik beter json dan gebruiken, wat is het voordeel?
@Erwt, bedankt voor je antwoord, maar ik heb ruim 30 velden en er is zijn ook blokken die net zo vaak dynamsich aangemaakt kunnen worden als dat de gebruiker nodig heeft dus kan ik niet statisch de get vullen.
Tjah ok, hier is dan ook wel weer een oplossing voor maar hier zou ik zelf eerst naar moeten kijken ben op 't moment nog een beetje druk met mijn eigen probleem.
Veel succes nog en als er nog iets anders is of je bent iets verder dan hoor ik het graag van je.
Als je JSON gebruikt heb je meteen een array waar JS iets mee kan doen. Dus hoef je niet eerst nog split te gebruiken om er dan arrays van te maken. Ik dacht ook dat JSON response een pak sneller was dan een html response maar ik kan me vergissen.