Avatar billede kasbas91 Nybegynder
01. oktober 2010 - 15:36 Der er 5 kommentarer og
1 løsning

Jeg har et problem med 2 select lister.. ?

Hej eksperten.dk

Jeg har et problem med 2 select lister, da jeg gerne vil have at jeg kan vælge noget i den ene af de select lister, og hvis der er noget som passer på det id så kommer der også nogle resultater i den næste...

FX. Den her viser de globale menu punkter i menubaren.
Og når jeg vælger en af dem, skal den se om der er noget der passer på nav_id i en anden database.


$visglobale = mysqli_query($mysqli, "SELECT * FROM `global_navigation`") or die(mysqli_error($mysqli));
            while($dbFetch = mysqli_fetch_array($visglobale)){
                $NumRows = mysqli_num_rows($visglobale);
                if($NumRows >= 1){       
                    echo "<option value=\"$dbFetch[nav_id]\">$dbFetch[nav_title]</option>";
                };
            };


Og hvis der er nogle under punkter til den globale menu som man har valgt, skal de vises her i den her, altså nav_id fra den globale skal der tjekkes på om der er noget at sammenligne med underpunkternes id som også er nav_id...



$visglobale = mysqli_query($mysqli, "SELECT * FROM `dynamic_leftnav`") or die(mysqli_error($mysqli));
            while($dbFetch = mysqli_fetch_array($visglobale)){
                $NumRows = mysqli_num_rows($visglobale);
                if($NumRows >= 1){   
                    echo "<option value=\"$dbFetch[leftnav_id]\">$dbFetch[leftnav_title]</option>";
                };
            };




Jeg håber i forstår mig. Det er måske lidt lige som de lister som vi har her på eksperten.dk, til at vælge katagori med...
Avatar billede majbom Novice
01. oktober 2010 - 22:19 #1
hvis det skal ske uden at siden hentes på ny ved valg i select'en, skal du have fat i noget AJAX...

der er et hav af guides osv på nettet - jeg kender ikke selv nogle af dem, så der er ikke lige en jeg kan anbefale...
Avatar billede kasbas91 Nybegynder
01. oktober 2010 - 23:25 #2
Okay, jeg kender intet til ajax og få den til at lave et call til databasen... Men jeg må prøve at læse på det igen... ;P Der er ikke en section her på eksperten hvor man kan få hjælp til AJAX...
Avatar billede tjens Nybegynder
01. oktober 2010 - 23:56 #3
Hvis dine 'leftnav' data  ikke er mange hundrede records, kan du sende dem med til browseren som javascript data fra starten.

Herunder en demo, der danner select 2 efter valg af værdi i select 1.

Der er 3 hovedpunkter, og data til underpunkter er pakket i javascript-variablen nav2.

Der er 3 forskellige "syntaxer" for de 3 hovedpunkters underpunkter: Så kan du se på hvad der er nemmest at skrive med php.

Demo
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Build dynamic secondary select</title>
<script type="text/javascript">

    var nav2 = {};
    nav2.fruits = [ "Nav2_ID01#Apple", "Nav2_ID02#Orange", "Nav2_ID03#Pineapple" ];

    nav2.animals = [
        "Nav2_ID04#Dog",
        "Nav2_ID05#Cat",
        "Nav2_ID06#Bird"
    ];

    nav2.vegetables = [];
    nav2.vegetables.push( "Nav2_ID08#Carrot" );
    nav2.vegetables.push( "Nav2_ID09#Parsnip" );
    nav2.vegetables.push( "Nav2_ID10#Potato" );


function showNav2(nav1id){
    if (nav1id == '---') {
        document.getElementById("menu2").style.display="none";
        return;
    }
    var select2 = document.getElementById("nav2");
    select2.length=0;

    for(var i=0; i<nav2[nav1id].length;i++) {
        var obj = document.createElement('option');
        obj.value=nav2[nav1id][i].split("#")[0];
        obj.text=nav2[nav1id][i].split("#")[1];
        select2.add(obj);
    }
    document.getElementById("menu2").style.display="block";
}
</script>
<style type="text/css">
</style>
</head>
<body>
<div id="menu">
    <select id="nav1" onchange="showNav2(this.value)">
        <option value="---">choose ...</option>
        <option value="animals">Animals</option>
        <option value="fruits">Fruits</option>
        <option value="vegetables">Vegetables</option>
    </select>
    <div id="menu2" style="display:none;">
        <select id="nav2" >
        </select>
    </div>
</div>
</body>
</html>
Avatar billede olsensweb.dk Ekspert
02. oktober 2010 - 11:11 #4
prøv at kigge på http://www.eksperten.dk/spm/920022 #4, der er link til et lille AJAX eks, samt source code
Avatar billede kasbas91 Nybegynder
02. oktober 2010 - 16:44 #5
#4:

Takker det virkede helt perfekt...

Læg et svar hvis du ønsker point... ;P

Mange tak for jeres hjælp...
Avatar billede olsensweb.dk Ekspert
02. oktober 2010 - 19:02 #6
svar
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