Avatar billede lylover Nybegynder
25. august 2011 - 23:03 Der er 13 kommentarer og
1 løsning

Forum , underkategori - overkategori

HEJ Eksperter!
Jeg har et problem med mit forum jeg er igang med at lave.
Jeg har overkategorier og underkategorier. Disse er i hver sin tabel, som er linket sammen ved, at der i underkategori tablen står "overkategori" som sjovt nok er navnet på overkategorien, og dermed også navnet i overkategori.

Men når man opretter et indlæg, har jeg to <select>.
Den først while med overkategori kan jeg godt lave.
Men når det så kommer til underkategorien, som jo først kan defineres efter overkategorien - og dermed er afhængig af denne - hvad gør jeg så?

Jeg poster lige min nuværende kode:
<select name="overkategori">
    <option size =30 selected>V&aelig;lg!</option>
    ';
    while($hent = mysql_fetch_array($kategori))  {
        $overkategori = $hent['overkategori'];
        $qu = mysql_query("SELECT * FROM kategori WHERE overkategori ='$overkategori'") or die(mysql_error());
        $row = mysql_fetch_assoc($qu);
        echo "<option>".$hent['overkategori']."</option><br><br>
        ";     } 
   
echo "</select><br><br><select name='underkategori'>
                <option size=30 selected>".$row['kategori']."</option>
                </select>";
Avatar billede majbom Novice
26. august 2011 - 08:42 #1
altså du vil have underkategori-selecten til at opdatere når man har valgt en overkategori? ligesom her på siden?

så skal du have fat i noget ajax, hvis du vil undgå refresh af siden.

i øvrigt vil jeg foreslå dig at bruge id til at relatere tabellerne til hinanden i stedet - det performer bedre
Avatar billede lylover Nybegynder
26. august 2011 - 08:46 #2
Ja, nemlig splazz.
Har du eventuelt nogle links eller noget til sådan en funktion?
Avatar billede kasbas91 Nybegynder
26. august 2011 - 09:26 #3
Hej du må se om du kan bruge det her til noget:


function GetXmlHttpObject()    {
    if (window.XMLHttpRequest)  {
        // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
        }
    if (window.ActiveXObject)  {
    // code for IE6, IE5
            return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

function GetAjaxData(Val, Outputid){
    var url = "select_dropdown.php";       
    var params = "name1=" + Val;
    http = GetXmlHttpObject();
    http.open("GET", url+"?"+params, true); 
    http.onreadystatechange = function () {
        if(http.readyState == 4 && http.status == 200 ){            
            document.getElementById(Outputid).innerHTML = http.responseText;    
        }
    }
    http.send(null);               
}   

<div id='select_box1'>
    <select size="0" name="name1" onchange="GetAjaxData(this.value, \'select_box2\')">
        <option>Vælg</option>
           
    </select>       
</div>

<div id='select_box2'>
    <select name='name2'>
       
    </select>
</div>
Avatar billede lylover Nybegynder
26. august 2011 - 09:32 #4
Nu har jeg da noget basis kode at lege med :)
Smid svar
Avatar billede kasbas91 Nybegynder
26. august 2011 - 09:40 #5
Jeg håber du kan bruge det til noget :)
Avatar billede majbom Novice
26. august 2011 - 10:36 #6
du bør dog bruge POST i stedet for GET

og overveje et alternativ til innerHTML
Avatar billede lylover Nybegynder
26. august 2011 - 12:01 #7
er ikke så meget inde i AJAX og JS koden, så alternativer til innerHTML?
Og der skal jo bare ændres i metoden i <form> mht post?
Avatar billede majbom Novice
26. august 2011 - 12:23 #8
jeg ville returnere værdierne til selecten i json-format og derefter generere options ved at løbe json-strengen igennem.

og ja, det er nemt nok at ændre det til POST, men derfor er det stadig en god ting ;)
Avatar billede lylover Nybegynder
27. august 2011 - 22:58 #9
mente bare mht det med post, om det var det eneste jeg skulle ændre i koden for at få det til at fungere med POST? :D

og det andet med at returnerne osv er jeg helt lost, er ikke overhovedet god til det der!
Avatar billede majbom Novice
27. august 2011 - 23:01 #10
har lige fundet den her på google, prøv at se om ikke det her kan bruges: http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/
Avatar billede lylover Nybegynder
27. august 2011 - 23:16 #11
kan jeg give nogle points eller noget , selvom de der var i tråden allerede er givet?
FOR DET fortjener du sgu! :)
Avatar billede majbom Novice
27. august 2011 - 23:21 #12
du kan ikke dele flere points i denne tråd - gem du dem bare til en anden go gang :)
Avatar billede lylover Nybegynder
27. august 2011 - 23:23 #13
jeg prøver at få det til at virke i hvert fald , tror jeg skal læse om det der json. For umiddelbart er jeg ikke sikker hvordan jeg skal få kodet php ind i det. jeg har ikke rigtig lyst til at skulle skrive alle overkategori og underkategorier ind hver gang der er noget nyt. :P
Avatar billede majbom Novice
28. august 2011 - 09:33 #14
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