ingsolv Skrevet 21. november 2007 Del Skrevet 21. november 2007 Leser ut brukere fra db med php og for å kunne endre rettigheten til hver bruker skriver jeg ut en liste som inneholder de forskjellige rettighetene, problemet mitt er å få tak i verdien når man har utført ett valg i en liste. Det jeg har tenkt er å ha eget navn på hver liste og sende med det når man kaller oppdater funksjonen, men får denne feilbeskjeden: Event thread: change Error: name: TypeError message: Statement on line 3: Could not convert undefined or null to object Backtrace: Line 3 of inline#1 script in publisering/test.php var sIndex = form.liste.selectedIndex; Line 1 of script oppdaterRettighet(this.form, "rettighet2"); At unknown location [statement source code not available] Hvis du vet hva som kan forandres for å få det til å fungere eller om du vet om en bedre måte hadde det vært fint. Eksempel på kode: <script type="text/javascript"> function oppdaterRettighet(form, liste){ var sIndex = form.liste.selectedIndex; var nyRettighet = form.liste.options[sIndex].value; alert(nyRettighet); } </script> <form name="brukerRettighet" action="?" method="GET"> Bruker1 <select name="rettighet" onchange="oppdaterRettighet(this.form, 'rettighet')"> <option value="12">admin</option> <option value="12">forfatter</option> <option value="12">deaktivert</option> </select> <br /> Bruker2 <select name="rettighet2" onchange="oppdaterRettighet(this.form, 'rettighet2')"> <option value="13">admin</option> <option value="13">forfatter</option> <option value="13">deaktivert</option> </select> </form> Lenke til kommentar
magicgunnar Skrevet 21. november 2007 Del Skrevet 21. november 2007 message: Statement on line 3: Could not convert undefined or null to objectBacktrace: Line 3 of inline#1 script in publisering/test.php var sIndex = form.liste.selectedIndex; Line 1 of script oppdaterRettighet(this.form, "rettighet2"); At unknown location [statement source code not available][/code] Dette betyr vel at form.liste.selectedIndex ikke inneholder noe fornuftig, og det er ikke så rart fordi form.liste ikke eksisterer. Du sender med en streng som du kaller 'liste', men form.liste betyr at du aksesserer en variabel som heter liste i objektet form. Det er litt klønete å inkludere en tekststreng i en kommando (selv om det går an med kommandoen eval) derfor ville jeg prøvd å isteden sende med "this" som parameter nummer to, og skriver liste istedenfor form.liste, hvis du skjønner hva jeg mener, slik: <script type="text/javascript"> function oppdaterRettighet(form, liste){ var sIndex = liste.selectedIndex; var nyRettighet = liste.options[sIndex].value; alert(nyRettighet); } </script> <form name="brukerRettighet" action="?" method="GET"> Bruker1 <select name="rettighet" onchange="oppdaterRettighet(this.form, this)"> <option value="12">admin</option> <option value="12">forfatter</option> <option value="12">deaktivert</option> </select> <br /> Bruker2 <select name="rettighet2" onchange="oppdaterRettighet(this.form, this)"> <option value="13">admin</option> <option value="13">forfatter</option> <option value="13">deaktivert</option> </select> </form> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå