php/ajax - opdater select box afhængig af anden select box

Tags:    php ajax xml listbox

Hej alle,

Jeg har to select list på min side, hvor jeg i den første har information fra databasen.
I den anden select box, skal jeg have information, baseret på hvad der er valgt i den første select box.
Så jeg skal lave noget med: onChange...i den første, og oprette et xmlhttprequest, da siden ikke bliver submitted, men blot den ene box der skal opdatere sig afhængig af hvad der er valgt.

Jeg har ikke brugt ajax før, men jeg har dette som udgangspunkt, som ikke fungerer... :-)
Første select box;
Fold kodeboks ind/udPHP kode 

Min anden select box, kommer så lige efter, og jeg har skrevet de informationer der skal hentes fra DB, men jeg ved ikke om de overhovedet skal stå der, eller om de skal stå i JS.filen længere nede?
$subjectid, er id fra den første select box, der bruges til at finde de rigtige positioner med i den anden..
Fold kodeboks ind/udPHP kode 

Jeg har forsøgt at oprette en js fil der ser sådan her ud, men jeg er lidt på herrens mark, da jeg ikke har benyttet AJAX før:
Fold kodeboks ind/udJScript kode 

Er dette korrekt syntax?
xmlhttp.open('GET', 'rediger.php?&page_position='+cat, true);
document.getElementByTagName('page_position').innerHTML = content
xmlhttp.send()

Og hvor skal jeg skrive database query, til den anden select box?

Der hvor den står nu?
Inde i js.scriptet?
Et helt 3. sted?

Jeg håber at høre fra en shark herinde, der kan hjælpe mig pårette vej!
Da det er det sidste jeg lige mangler før min backend virker helt :-)

Jan




4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej Jan,

Jeg vil anbefale dig at bruge et JavaScript framework, fx jQuery (min personlige favorit). Det gør det utroligt meget lettere og mere robust at lave fx AJAX kald. Det du forsøger at gøre vil ikke være synderligt besværligt at lave med jQuery, men det kræver naturligvis lige at man har styr på et par forskellige principper omkring det :)

Mvh.

Kasper (TSW)



Hej Kasper,

Tak for dit svar!

Jah altså for mig er det underordnet, bare det virker og jeg kan lære det..

Jeg synes umiddelbart det er relativt lidt kode der står i den nuværende js.fil, der indeholder xmlhttprequest'et..Men jeg kan ikke lige pt gennemskue hvordan jeg får det til at virke og hvor jeg skriver hvad. Og frem for et framework, ville det vare fedt at få ovenstående ind under huden så det er ens "egen kode", og der er styr på det.

Men kan jeg ikke hitte ud af det, har jeg da ikke noget problmen med at bruge jquery framework.

Mht jquery, har du et link til en tutorial, eller en side der omhandler netop mit "problem", og hvad jeg ønsker at opnå?

Det er jo ikke ligefrem en unik problem stilling at ville opdatere en box på baggrund af en anden. Har bare ikke kunne google mig frem til en præcis løsning indtil videre og det er det sidste jeg mangler så jeg er ved at blive sindsyg af at træde vande :-)



Hej Jan,

Well, jQuery er ikke kun godt til AJAX men gør også en lang række andre typiske JavaScript opgaver langt lettere, fx at finde et eller flere elementer på en side og opdatere dem, samt meget andet. Jeg googlede lidt og faldt over den her blog post, som lader til at behandle en problemstilling meget lig din. Prøv at se om du kan bruge den til noget:

http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

Mvh.

Kasper (TSW)



Tak for info!

Jeg har dog fået det til at virke i mellemtiden :-)

Men jeg vil se på jquery, og se hvordan og hvorledes jeg kan få gavn af det!

Tak for hjælpen,



t