Avatar billede jakobdo Ekspert
13. april 2004 - 15:14 Der er 9 kommentarer og
1 løsning

Jeg skal bruge en dynamisk side, hvor dropdown box er dynamisk

Hej,
jeg har koden:

<table>
<tr><select>
<option>-
<option>1
<option>2
<option>3
</select>
</tr>
</table>

Vælges 1-3, skal der laves en ny dropdownboks lige under, altså noget i stil med:

<table>
<tr><select>
<option>-
<option>1
<option>2
<option>3
</select></tr>
<tr><select>
<option>-
<option>1
<option>2
<option>3
</select>
</tr>
</table>

Værdierne kommer fra et mysql-udtræk, men det skal jeg nok finde ud af!
Avatar billede jakobdo Ekspert
13. april 2004 - 15:14 #1
Og siden skal jo være så dynamisk, så vælger jeg 1-3 100 gange, så har jeg 101 dropdown-bokse!
Avatar billede jakobdo Ekspert
13. april 2004 - 16:29 #2
Jeg har forsøgt med følgende:

<html>
<head>

<script type="text/javascript">

var ns4 = (document.layers);
var ie4 = (document.all && !document.getElementById);
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);

var count = 0;

function createSelect()
{
    // Netscape 4
    if(ns4)
    {
        count++;
        document.layers['maal'].document.close();
        document.layers['maal'].document.write("Test");
        document.layers['maal'].document.close();
    }
    // Explorer 4
    else if(ie4)
    {
        count++;
        document.all['maal'].innerHTML = document.all['maal'].innerHTML + "<tr><td><select name='"+count+"'><option>Jakob<option>Morten</select></td></tr><br>";
    }
    // W3C - Explorer 5+ and Netscape 6+
    else if(ie5 || ns6)
    {
        count++;
        document.getElementById('maal').innerHTML = document.getElementById('maal').innerHTML + "<tr><td><select name='"+count+"'><option>Jakob<option>Morten</select></td></tr><br>";
    }
}
</script>
</head>
<body>

<table>
<form>
<a href="#" onclick="createSelect()">Opret målscorer</a>
<div id="maal">
</div>
<input type="submit" name="opdaterscorer" value="Opdater Scorer">
</form>
</table>

</body>
</html>

Men det virker ikke optimalt! (ihf ikke i Mozilla og Opera)
Avatar billede roenving Novice
13. april 2004 - 20:50 #3
Jeg ville gå hele vejen (og nøjes med at checke, om browserne var dom-kompatible !-)

var ns4 ...
var ie4 ...
var dom = (document.getElementById)?true:false;

if(dom){
  var newOpt;
  var tbody = document.getElementById('minTbody');
  var newTr = document.createElement('TR');
  tbody.appendChild(newTr);
  var newTd = document.createElement('TD');
  newTr.appendChild(newTd);
  var newSel = document.createElement('SELECT');
  newTd.appendChild(newSel);
  newSel.name = 'sel' + count;
  var opts = ['Karl','Jakob','Morten'];
  for(i=0;opts.length>i;i++){
    newOpt = document.createElement('OPTION');
    newSel.appendChild(newOpt);
    newOpt.text = newOpt.value = opts[i];
  }
}
Avatar billede roenving Novice
13. april 2004 - 20:54 #4
-- og bemærk, at jeg henviser til tbody, for en sådan findes selv om du ikke opretter den, og ie kan ikke udføre tabel-operationer som tilføj række uden at den tilføjes til tbody, så skriv den ind i din kode:

<table><tbody id="minTbody">

...

</tbody></table>

Gecko-browserne kan godt gennemskue den sag, men det nægter ie (vel egentlig meget rimeligt !-)
Avatar billede jakobdo Ekspert
13. april 2004 - 21:11 #5
Jeg forstår ikke helt din kode?
F.eks.:
var ns4 ...
var ie4 ...

Skal der ikke laves en javascript funktion?
Og hvad skal der være her:<table><tbody id="minTbody">

...

</tbody></table>
Istedet for ...?

Skal jeg genbruge det meste af mit eget?
Avatar billede roenving Novice
13. april 2004 - 21:18 #6
Ellipserne står for, at du ikke skal lave noget anderledes !-)

Så ja, du skal genbruge det meste af dit eget ...
Avatar billede roenving Novice
13. april 2004 - 21:29 #7
Ups, en ellipse er det engelsk/amerikanske navn for det tegn, som skrives med 3 punktummer !-)
Avatar billede jakobdo Ekspert
14. april 2004 - 09:34 #8
Top nice! Fik det til at du! Smider du et svar? :o)
Avatar billede roenving Novice
14. april 2004 - 22:54 #9
Velbekomme '-)
Avatar billede roenving Novice
16. april 2004 - 17:46 #10
-- og tak for points ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester