Avatar billede tma Juniormester
08. november 2021 - 11:41 Der er 2 kommentarer

Webside delt i 2 - Øverste afgør indholdet på nederste side. Hvordan nemmest?

Sikkert et helt banalt spørgsmål for de rette. Jeg har en combobox med ca. 20 elementer. Afhængig af det valg brugeren foretager, skal jeg indlæse enten 2.htm, 3. htm osv. i nederste del. De enkelte elementer i comboxen har en optionvalue som er 1, 2, 3 osv.

Jeg har en enkelt hovedfil som har 2 frames der deler siden vandret.

Håber der er en som lyst til at hjælpe
/Torben
Avatar billede Rune1983 Ekspert
09. november 2021 - 13:02 #1
Kunne dette eksempel være en løsning?

Forudsætter dit website kan køre PHP.

2 filer.
index.php
jSonHentDataFraServ.php

<div style="width: 100%;">
    <select id="idCombobox" onchange="jSonHentDataFraServer(document.getElementById('idCombobox').options[document.getElementById('idCombobox').selectedIndex].value,'idDivVisDataHer');">
        <option value="">Vælg</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
</div>
<div style="width: 100%;" id="idDivVisDataHer"></div>
<script type="text/javascript">
    function jSonHentDataFraServer(Variabel01,idVisHer){

        if( document.getElementById(idVisHer) ){
            // Loading billede indtil data er hentet. Rart hvis noget tager længere tid for serveren at behandle. Ellers går det ret hurtigt.
            document.getElementById(idVisHer).innerHTML = '<img style="height: 50px;" src="images/loading.gif" />';
        }

        var obj, dbParam, xmlhttp, myObj, x, txt = "";
        obj = {
            "Variabel01": Variabel01
        };
        dbParam = JSON.stringify(obj);

        if ( window.XMLHttpRequest ) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange = function() {
            if ( this.readyState === 4 && this.status === 200 ) {
                if( document.getElementById(idVisHer) ){
                    document.getElementById(idVisHer).innerHTML = this.responseText;;
                }
            }
        };

        xmlhttp.open("POST", "jSonHentDataFraServ.php", true);

        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send("x=" + dbParam);
    }
</script>


<?php
//////////////////////////////////////////
// Fil: jSonHentDataFraServ.php
//////////////////////////////////////////
header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode(filter_input(INPUT_POST, 'x'), false);
//////////////////////////////////////////
$Variabel01 = $obj->Variabel01;
//////////////////////////////////////////
if( $Variabel01 == 1 ){
    //include ("1.htm");
    ?>Vis 1.htm<?php
}elseif( $Variabel01 == 2 ){
    //include ("2.htm");
    ?>Vis 2.htm<?php
}elseif( $Variabel01 == 3 ){
    //include ("3.htm");
    ?>Vis 3.htm<?php
}elseif( $Variabel01 == 4 ){
    //include ("4.htm");
    ?>Vis 4.htm<?php
}elseif( $Variabel01 == 5 ){
    //include ("3.htm");
    ?>Vis 5.htm<?php
}
//////////////////////////////////////////
//////////////////////////////////////////
?>
Avatar billede tma Juniormester
09. november 2021 - 14:12 #2
Lidt for avanceret for mig, må jeg erkende. Jeg har fundet en anden løsning, og kan desværre ikke vurdere din løsning.
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