Gå til innhold

Value fra select lister


Anbefalte innlegg

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
Videoannonse
Annonse
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][/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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...