[PHP/xmlHTTP] Variabelen afvangen en vergelijken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben met xmlHTTP aan de slag gegaan omdat je er toch wel erg gebruiksvriendelijke forms mee kunt maken. Alles werkt, behalve het eindstation.

Een form verzend een studentnummer, dmv xmlHTTP en PHP wordt gecontroleerd of deze student bestaat ja of nee. Als hij/zij bestaat, dan moet dat in een <SELECT> komen, bestaat hij/zij niet, dan moet een foutmelding in een <DIV> komen.

Dit krijg ik dus niet voor elkaar, omdat ik niet af kan vangen wat er in 'responseText' staat.

De php file geeft of "none" als de student bestaat en " - bestaat niet" als de student niet bestaat.
Maar dit werkt niet:
code:
1
2
3
4
5
6
7
8
9
result = http.responseText;

if(result == "none")
{
     newoption = new Option(lid, lid);
     document.getElementById("keuzes").options[boxLength] = newoption;
} else {
     document.getElementById("comments").innerHTML = lid + result;
}


Hoe kan ik toch responseText uitlezen. Ik heb het gevoel dat het heel erg simpel moet zijn, maar ik kom er maar niet achter.

edit: topic titel is niett helemaal goed "variabelen" moet "responseText" zijn.

[ Voor 9% gewijzigd door Verwijderd op 13-10-2005 14:34 ]


Acties:
  • 0 Henk 'm!

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-08 20:35
Heb je alleens gekeken wat responseText teruggeeft? Bijvoorbeeld met alert ofzo? Waarschijnlijk zitten er nog spaties of newline tekens (of iets dergelijks) in je output die je van PHP terugkrijgt.

If I can't fix it, it ain't broken.


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*


Acties:
  • 0 Henk 'm!

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-08 20:35
Ik vind dat dat voorbeeld al wel erg slecht begint door te checken op browser...
JavaScript:
1
2
3
4
5
6
7
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }

Je kunt het naar mijn idee beter zo doen:
JavaScript:
1
2
3
4
5
6
if (window.XMLHttpRequest) {
    xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
     xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}

Omdat er ook andere browsers kunnen zijn die zich identificeren als Internet Explorer maar geen activeX ondersteunen. En als een latere versie van IE (7 ?) het nu gaat implementeren zonder ActiveX object zit je daar ook gelijk goed op deze manier.

If I can't fix it, it ain't broken.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Borizz schreef op donderdag 13 oktober 2005 @ 14:36:
Heb je alleens gekeken wat responseText teruggeeft? Bijvoorbeeld met alert ofzo? Waarschijnlijk zitten er nog spaties of newline tekens (of iets dergelijks) in je output die je van PHP terugkrijgt.
De alert geeft hetzelfde weer als wat responseText in een pagina zet.

Bosmonster bedankt voor de tip!

Dit zou dus moeten werken:
code:
1
2
3
4
5
6
7
8
9
if(response.indexOf('none') != -1)
{   
    newoption = new Option(lid, lid);
    document.getElementById("keuzes").options[boxLength] = newoption;
}
else
{
    document.getElementById("comments").innerHTML = lid + response;
}


Maar dat doet het dus niet! :( Als ik het omdraai, dus de innerHTML na de if en de newoption na de else, dan doet ie alles in de innerHTML zetten, er wordt dus geen onderscheid gemaakt, de if is altijd true, terwijl er niet altijd "none" in staat. Ik word gek. }:O

edit: puntkomma's (werkt wel zonder overigens)
edit2: opgelost. Aaaaaargh... Dat allemaal door die tutorial van Bosmonster }) 8)7 :'( daar stond een type fout in en ik zag 't maar niet... :X

[ Voor 16% gewijzigd door Verwijderd op 13-10-2005 16:25 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Borizz schreef op donderdag 13 oktober 2005 @ 14:46:
[...]

Ik vind dat dat voorbeeld al wel erg slecht begint door te checken op browser...

[...]
Heb je helemaal gelijk in, maar het blijft een aardig voorbeeld van de basis van AJAX.

Okke's voorbeeld uit het andere topic is ook niet onaardig:

http://www.xml.com/pub/a/2005/02/09/xml-http-request.html

Wel wat meer tekst :)

[ Voor 20% gewijzigd door Bosmonster op 13-10-2005 16:00 ]

Pagina: 1