De titel zegt het al, ik wil met mootools een boolean controleren op true of false.
is het mogelijk dat ik dmv ajax een pagina aanroep, die true of false antwoord. En afhankelijk van dit antwoord een bepaalde actie wel of niet uitvoer?
als het niet helemaal duidelijk is wat ik bedoel, zal ik wel een voorbeeldje posten van wat ik bedoel.
Dat is zeker mogelijk, je kunt de responseText die je terug krijg toch gewoon opvangen? Daarmee kun je dus gewoon bepalen wat het script terug gegeven heeft:
Let wel dat Ajax relatief traag is. Een aanroep duurt toch al gauw een paar honderd miliseconden, daarom is het ook asynchroon. Op basis van een true of false een actie uitvoeren klinkt nogal synchroon. Nu heeft XMLHttpRequest daar een parameter voor, maar die kan je niet via MooTools aanpassen als ik zo de documentatie bekijk. Daarnaast lijkt het dan alsof je browser een korte tijd hangt, want tijdens een synchrone aanroep blokkeert Javascript alle interactie met de webpagina.
Met andere woorden: kijk of het mogelijk is om het asynchroon te doen. Maar verder is het natuurlijk mogelijk om via onComplete te controleren of de responseText true of false (let op: de string true of false) teruggeeft, en aan de hand daarvan verder gaan.
Op basis van een true of false een actie uitvoeren klinkt nogal synchroon.
Nee hoor, dat hoef niet. Denk bijvoorbeeld aan live formulier controle waar je bijvoorbeeld controleert of een username bestaat. Het enige dat een php script terug geeft is true of false, op basis waarvan je een bepaald tekentje toont.
let op: de string true of false
Ook dat is niet per se nodig. Het echoën van een boolean levert null (niets) of 1, en in de responseText wordt dat door javascript goed geinterpreteerd als je er een boolean vergelijking mee uitvoert.
Ik interpreteerde het als iets vergelijkbaar als een aanroep naar confirm(), dus iets wat direct een antwoord geeft, en totdat deze beschikbaar is blokkeert.
Dat met die 0 & 1 is inderdaad wel slim. Enige reden die ik kan bedenken om het niet te gebruiken is dat een error ook een string is, en dus ook naar true evalueert.
Uiteraard, je kunt 'true' en 'false' ook als strings echoën zoals Jelmer al zei. In dat geval kun je met javascript gewoon een vergelijking uit te voeren op die strings: