Waarom zou dat niet mogelijk zijn .quote:Op zondag 25 september 2005 14:43 schreef BaggerUser het volgende:
oke dom van me... maar het is naturlijk niet mogelijk om de text in de div te verranderen met per naam een andere melding er in
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | function checkName(input, response) { if (response != ''){ // Response mode message = document.getElementById('nameCheckFailed'); username = document.getElementById('username').value; if (response == '1'){ message.className = 'error'; message.firstChild.nodeValue='The name ' + username + ' is in use, please try another.'; }else{ message.className = 'hidden'; } }else{ // Input mode url = 'http://localhost/xml/checkUserName.php?q=' + input; loadXMLDoc(url); } } |
Zo dat was lastig. checkUserName.php geeft nu een <result> en een <error> terug. Ook moest form.php aangepast worden om de <error> op te vangen.quote:Op zondag 25 september 2005 15:19 schreef BaggerUser het volgende:
ik heb die functie vervangen door de functie die jij geschreven hebt maar krijg een foutmelding.
maar volgens mij is dat nog niet helemaal wat ik bedoel, want hij moet zegmaar de text van de foutmelding uit de database halen.
dus hij moet uit checkUsername.php niet alleen 1 of 0 teruggeven maar ook een stukje text en die text moet in de div komen.. als je me nog volgt
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | <html> <head> <style> span.hidden{ display: none; } span.error{ display: inline; color: black; background-color: pink; } </style> <script> var req; function loadXMLDoc(url) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(); } } } function checkName(input, response, error) { if (response != ''){ // Response mode message = document.getElementById('nameCheckFailed'); if (response == '1'){ message.className = 'error'; }else{ message.className = 'hidden'; } if (error != '0') { //TOEGEVOEGD message.innerHTML = error; }else{ message.innerHTML = ''; } } else{ // Input mode url = 'checkUserName.php?q=' + input; loadXMLDoc(url); } } function processReqChange() { // only if req shows "complete" if (req.readyState == 4) { // only if "OK" if (req.status == 200) { // ...processing statements go here... response = req.responseXML.documentElement; method = response.getElementsByTagName('method')[0].firstChild.data; result = response.getElementsByTagName('result')[0].firstChild.data; error = response.getElementsByTagName('error')[0].firstChild.data; //TOEGEVOEGD eval(method + '(\'\', result, error)'); } else { alert("There was a problem retrieving the XML data:\n" + req.statusText); } } } </script> </head> <body> <input id="username" name="username" type="text" onblur="checkName(this.value,'')" /> <span class="hidden" id="nameCheckFailed"> #nameCheckFailed </span> </body> </html> |
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 38 39 40 41 | <?php header('Content-Type: text/xml'); if (isset($_GET['q'])){ $q = $_GET['q']; strtolower($q); //query maken, kijken of q tussen de namen zit //zoja, $indb = 1; //zonee, $indb = 0; //EVEN EEN TEST DATABASE $db['fred'] = 'jammer, fred bestaat al!'; $db['drew'] = 'drew is al bezet!'; if(array_key_exists($q, $db)) { $indb = '1'; $error = $db[$q]; } else { $indb = '0'; $error = '0'; } //EINDE TEST DATABASE /* DEZE REGEL WEG if ($indb) { $error = ''; //SELECT error WHERE name=$q $error = 'gaat niet door'; // TEST, kan weg } else { $error = ''; } //niet in db, geen error, leeg laten DEZE REGEL WEG */ } else { $indb = '0'; $error = '0'; } //als er niets is ingevuld kan er ook niets fout aan zijn // $indb = <result>, en $error = <error> // $error = '0'; betekent *alles okay, geen error* ?> <?php echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; ?> <response> <method>checkName</method> <result><?php echo $indb; ?></result> <error><?php echo $error; ?></error> </response> |
Graag gedaan, ik heb er zelf ook wat van geleerd. Waar ga je het voor gebruiken, als ik vragen mag?quote:Op maandag 26 september 2005 11:15 schreef BaggerUser het volgende:
geweldig
en het werkte in 1 keer he twas even kloten om het ook werkend te krijgen met plaatjes en extra regels text etc maar is ook gelukt geweldig dank jullie wel!
http://en.wikipedia.org/wiki/AJAXquote:Op zaterdag 24 september 2005 13:08 schreef BaggerUser het volgende:
of is er ook een mogelijkheuid om met b.v. javascript iets uit een mysql databse te halen en dan de etxt te verranderen zonder de hele pagina te refreshen? ik vrees van niet mar misschien kn iemand me iets verder helpen
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |