Avatar billede larsgrau Forsker
28. april 2020 - 12:44 Der er 5 kommentarer og
1 løsning

indsæt i combobox

min kode er som følger, men jeg kan ikke få den til at sætte det ind

<!DOCTYPE html>
<html>
<body>

<p>Select a new car from the list.</p>

<select id="mySelect" onchange="myFunction()">
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Mercedes">Mercedes</option>
  <option value="Volvo">Volvo</option>
</select>

<p>When you select a new car, a function is triggered which outputs the value of the selected car.</p>

<select name="combobox1" id="demo">
<option></option>
</select>

<script>
function myFunction() {
  var x = document.getElementById("mySelect").value;
  document.getElementById("demo").innerHTML = "You selected: " + x;
}
</script>

</body>
</html>

Nogen som kan hjælpe mig
Avatar billede Rune1983 Ekspert
28. april 2020 - 13:07 #1
Prøv det eksempel her nedenfor. Ved ikke helt om det er du søger.

<select id="mySelect" onchange="UnderComboboxInsert(document.getElementById('mySelect').options[document.getElementById('mySelect').selectedIndex].value);">
  <option value="Audi">Audi</option>
  <option value="BMW">BMW</option>
  <option value="Mercedes">Mercedes</option>
  <option value="Volvo">Volvo</option>
</select>
<select id="idUnderCombobox"></select>

<script>
    function UnderComboboxInsert(chosen){
        var selbox = document.getElementById('idUnderCombobox');
       
        selbox.options.length = 0;
       
        selbox.options[selbox.options.length] = new
        Option('Vælg',' ');
       
        if(chosen == 'Audi'){
            selbox.options[selbox.options.length] = new
            Option('Audi 1','Audi 1');
            selbox.options[selbox.options.length] = new
            Option('Audi 2','Audi 2');
            selbox.options[selbox.options.length] = new
            Option('Audi 3','Audi 3');
        }
        if(chosen == 'BMW'){
            selbox.options[selbox.options.length] = new
            Option('BMW 1','BMW 1');
            selbox.options[selbox.options.length] = new
            Option('BMW 2','BMW 2');
            selbox.options[selbox.options.length] = new
            Option('BMW 3','BMW 3');
            selbox.options[selbox.options.length] = new
            Option('BMW 4','BMW 4');
            selbox.options[selbox.options.length] = new
            Option('BMW 5','BMW 5');
        }
        if(chosen == 'Mercedes'){
            selbox.options[selbox.options.length] = new
            Option('Mercedes 1','Mercedes 1');
            selbox.options[selbox.options.length] = new
            Option('Mercedes 2','Mercedes 2');
        }
        if(chosen == 'Volvo'){
            selbox.options[selbox.options.length] = new
            Option('Volvo 1','Volvo 1');
        }
    }
    UnderComboboxInsert(document.getElementById('mySelect').options[document.getElementById('mySelect').selectedIndex].value);
</script>
Avatar billede Slater Ekspert
28. april 2020 - 13:11 #2
Ja, du kan naturligvis ikke sætte en streng ind med innerHTML i en select-boks, som kun kan indeholde options-elementer. Det giver ikke rigtig mening.

Hvis det ikke er hvad Rune 1983 foreslår, du leder efter, må du gerne forklare lidt mere præcist hvad du ønsker der skal ske.
Avatar billede larsgrau Forsker
28. april 2020 - 13:42 #3
Hej Igen

jeg har ændre lidt i min kode det er ikke en select mere men i stedet for en input type="text" med en liste til, så man ikke kun kan skrive hvad er er i combobox´s liste. Men det virker ikke som jeg gerne vil have det til at virke.

Jeg vil gerne have at hvis man ændre i en input text box så skal den skrive noget andet i en anden text box, uden at man skal genindlæse siden.
Avatar billede olsensweb.dk Ekspert
28. april 2020 - 14:09 #4
#3
noget ala dette ??

<!DOCTYPE html>
<html>
<body>
<input type="text" id="myinput" onchange="myFunction()">
<input type="text" id="demo" readonly>
<script>
function myFunction() {
  var x = document.getElementById("myinput").value;    
  var element = document.getElementById("demo");
  element.value = "You typed " + x;
}
</script>
</body>
</html>



eller

nb de tidligere "options forsvinder ved valg"
<!DOCTYPE html>
<html>
<body>

<input type="text" list="cars" id="myinput" onchange="myFunction()"/>
<datalist id="cars">
  <option>Volvo</option>
  <option>Saab</option>
  <option>Mercedes</option>
  <option>Audi</option>
</datalist>


<input type="text" id="demo" readonly>
<script>
function myFunction() {
  var x = document.getElementById("myinput").value;    
  var element = document.getElementById("demo");
  element.value = "You typed " + x;
}
</script>
</body>
</html>
Avatar billede larsgrau Forsker
28. april 2020 - 14:50 #5
der er lige en ting mere, jeg kunne godt tænke mig at man kunne bruge x til et opslag i en sql tabel, men jeg ved ikke rigtigt hvordan man får x en i en query såsom denne

Sql = "Select * from car Where car = X"
$result = mysqli_query($con, $sql);
$queryresult = mysqli_num_rows($result);
if (@queryresult  >0) {
$row = mysqli_fetch_array($result);
  $type = $row['cartype'];
document.getElementById("demo").value = $type;
} else{
document.getElementById("demo").value = "-";
}

kan dette lade sig gøre ?
Avatar billede olsensweb.dk Ekspert
28. april 2020 - 15:22 #6
#5
>jeg kunne godt tænke mig at man kunne bruge x til et opslag i en sql tabel, men jeg ved ikke rigtigt hvordan man får x en i en query

det kan man godt, løsningen hedder AJAX
plain js
https://www.w3schools.com/js/js_ajax_intro.asp

hvis du bruger jquery på din side iforvejen vil jeg anbefale
https://www.w3schools.com/jquery/jquery_ajax_intro.asp
https://api.jquery.com/jquery.ajax/


det er også AJAX der ligger bag autocomplete
https://www.computerworld.dk/eksperten/spm/1032864?k=8352768
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

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