Send data med Ajax

Tags:    jquery ajax

Kære udviklere,

Jeg er virkelig forvirret. Jeg skal til at lave et "brugernavn-checker" script, og jeg er kommet så langt så jeg blot indskriver noget data i mit input felt og så skal Ajax indhente noget fra en php fil, omkring om brugernavnet allerede er taget. Det virker perfekt, men bare ikke når jeg smider det i en if-else statement. Forstår det simpelthen ikke.

Fold kodeboks ind/udJScript kode 


Jeg er gået så langt ud så jeg checker på et string som skal modtages. Den kan også sagtens modtages ved at jeg skriver
Fold kodeboks ind/udJScript kode 


Men så snart jeg skriver
Fold kodeboks ind/udJScript kode 


Så reagerer den ikke. Det forstår jeg ikke helt. Min .php-fil er der intet galt med. Den returnerer data som den skal. Er der nogle der lige kan lure en fejl jeg har lavet? Ville være super duper :)



6 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Du kunne prøve at tilføje; dataType: 'text'

Har du siden oppe et sted, hvor vi kan se den?



Det virkede ikke med dataType. Men har heller ikke lagt den online endnu, da selve siden er online men ikke den fil jeg arbejder på. Den skal nemlig ikke kunne ses endnu :)


---------------------


Jeg har rettet lidt i koden og er kommet cirka her til:

Fold kodeboks ind/udJScript kode 


Den fortsætter bare med at skrive "ledigt" hele tiden, selvom at jeg ved at det er optaget. Det er det i php filen, samt hvis jeg bare udskriver det fra selve min php.

Jeg udskriver således i php:

Fold kodeboks ind/udPHP kode 


Jeg har også prøvet med en masse andet. Forstår det bare ikke.

Edit. Jeg har ordnet det. Ganske vidst ikke på den måde jeg ønskede, men det virker.

JavaScript
Fold kodeboks ind/udJScript kode 


PHP
Fold kodeboks ind/udPHP kode 


Det virker ihvertfald :)



Indlæg senest redigeret d. 28.05.2012 09:16 af Bruger #16025
Prøv lige at lægge det hele på samme server, enten dit eksterne webhost(du kan jo sætte loginsession på dine file hvis de ikke må ses af andre) - ellers localhost.

Ajax og multidomains er nemlig ikke lige til.

Læs evt. Stack Overflow: JQuery ajax cross domain



Det lader til at det svar du får tilbage ikke bare er en rå tekststreng, men et "response-object". Du ville formentlig finde det meget nemmere at løse sådan nogle problemer med console.log i stedet for alert. Prøv i dit success callback at gøre følgende:

Fold kodeboks ind/udJScript kode 


Ovenstående logger selve objektet, dets type, dets strengværdi og om hvorvidt den er *identisk* med strengen 'true'



@Jakob Jeg kigger på koden lidt senere. Tak :)

@Stani Jeg er i øjeblikket igang med at smide det op. Jeg skal lige have rettet lidt kode til, så det virker igen. Den fungerer nemlig ikke helt optimal med login når jeg smider den direkte kode op på min server. Mærkeligt.


----------


Jeg har fået lagt det op, og I kan teste scriptet som fungerer nu. I klikker ind på www.dab93.dk, og logger ind i højre panel.

E-mail: test1234@test1234.dk
Adgangskode: 12345678

Så for at se den gældende side, skal du/I klikke ind på /opret.php som er åbnet for den bruger med rettigheder :) - nederst på siden finder du/I input-feltet til brugernavnet.

Og scriptet fungerer. Men jeg skal nok teste @Jakob's forslag senere :)



Indlæg senest redigeret d. 28.05.2012 14:30 af Bruger #16025
jQuery(msg) == 'ledigt' burde klare den.

/J



t