Avatar billede mr-bob Nybegynder
21. februar 2005 - 08:46 Der er 17 kommentarer og
3 løsninger

Faq how to?

Jeg skal have lavet en Faq, men kan ikke helt finde ud af hvordan den skal se ud. og hvordan denne skal laves.

Så tænkte om der var nogen der vidste nogle steder Der evt. havde nogle forskellige udgaver så man kunne se dem, og hvordan de blev lavet?

Mvh Bob
Avatar billede jakobclausen Nybegynder
21. februar 2005 - 08:53 #1
Avatar billede mr-bob Nybegynder
21. februar 2005 - 08:58 #2
Den ser ok ud, men hvordan laves denne?
jeg kan specielt godt lide det med når man trykker på et punkt, så bliver det stykke, der hører under det valgte, markeret. Hvordan laves dette?
Avatar billede jensgram Nybegynder
21. februar 2005 - 08:59 #3
Avatar billede mr-bob Nybegynder
21. februar 2005 - 09:03 #4
Hej jens. Det ser også fint ud, men kan faktisk rigtig godt lide den JakobClausen har linket til..
Men ved ikke hvordan denne laves...
Avatar billede jakobclausen Nybegynder
21. februar 2005 - 09:21 #5
mr-bob >> jeg har prøvet at kigge lidt i koden og kan faktisk ikke helt finde ud af hvordan det er lavet - men ja, det er nemlig ret smart.
Avatar billede mr-bob Nybegynder
21. februar 2005 - 11:28 #6
ok. ved du hvem der har lavet det? kan nemmerlig ikke finde nogen oplysninger på det.

well jeg sætter mig også lige ned og kigger i koden, må lige se om jeg kan hitte ud af den...
Avatar billede jakobclausen Nybegynder
21. februar 2005 - 11:35 #7
Jeg mener det er "exp", der har lavet det - han har i hvertfald haft noget med det at gøre: http://www.eksperten.dk/bruger.phtml?navn=exp
Avatar billede exp Juniormester
21. februar 2005 - 12:57 #8
Det er korrekt at det er mig der har kodet den :-)

Og det er faktisk meget simpelt.

Hvis vi tager udgangspunkt i et tilfældigt punkt i FAQ'en, fx:
http://expfaq.1go.dk/?id=3#behandling_af_svar

ses to dele.
1. ID = 3
2. Der henvises til "behandling_af_svar"

Nu til markeringstricket:
Hver gang siden loades, indlæses samtlige punkter fra databasen (Yes, de ligger i en database), og listes op i en parent/child-system. Hver hovedpunkt sit ID, hver underpunkt sit ID.

I det øjeblik ID'et fra adresselinien er lig med det ID der hentes ud fra databasen, tilføjes en anden klasse til den pågældende <div>, således at formateringen er anderledes - blå baggrund og markeret kant.

Herefter fortsættes udskrivningen af punkter på normal vis.

Når siden er færdig med at indlæse, springes til den pågældende <a name> (som også sættes individuelt fra databasen.

Slut prut :-)
Avatar billede jakobclausen Nybegynder
21. februar 2005 - 15:08 #9
exp >> Kunne du lave et lille eksempel, hvor vi kan få lov at se koden? HVis det er tilladt vil jeg godt give 200 point for det :-)
Avatar billede exp Juniormester
21. februar 2005 - 15:34 #10
Kan da prøve, uden at røbe hele kildekoden ;-)

//Pseudokode
Hent alle poster i databasen

Udskriv alle poster i databasen // $rs[]

while($rs) { // Hvis $rs['id'] = $_GET['id'] sættes $selected='selected', hvis ikke: $selected='qa'
    if (isset($_GET['id']) && $_GET['id'] == $rs['id']) {
        $selected = 'selected';
        $br = '<br />';
    } else {
        $selected = 'qa';
    }
    echo "<div class='".$selected."'><h3><a href='?id=".$rs2['id']."#".$rs2['hotlink']."'>".$rs2['titel']."</a></h3>\r\n";
    $str = nl2br(stripslashes($rs2['tekst']));
    echo $str."</div>\r\n\r\n".$br;
    $selected = 'qa'; //Bare lige for at sikre mig, at $selected='qa', så den ikke pludselig markerer flere felter (resultatet af sjusket rodekode)
}

Css:
.selected {
    background: silver;
    border: 2px solid black;
    }
.qa {
    background: white;
    border: 0px;
    }


Sådan cirka :-)
Avatar billede mr-bob Nybegynder
21. februar 2005 - 17:28 #11
Hej exp. tak fordi du lige ville kigge forbi.

Hmm, det ovenstående forstår jeg ikke en disse af... troede ikke det var så indviklet. Havde håbet jeg kunne overleve med lidt copy/paste.. ;-)

Men takker da fordi du lige begav dig herind..

Mvh Bob
Avatar billede jensgram Nybegynder
21. februar 2005 - 17:35 #12
... hvis du ikke har mod på serverside-scripting, så _kan_ fremhævningen altså også laves i DHTML:

* Hvert spm i en unikt navngiven container
* en onclick-event-ting på spørgsmålet (sikkert et anker)
* en lille funktion (JavaScript), der sætter en baggrundsfarve på elementet (via. document.getElementById(<mit_element>).style.backgroundColor)
* ovenstående funktion kan evt. indeholde et array over alle spm-containers, hvilket gør det let at "afmarkere" alle andre spm...

Håber du forstod!
Avatar billede mr-bob Nybegynder
21. februar 2005 - 17:44 #13
Altså jeg må da ærligt indrømme at jeg ikke forstår særlig meget af den ovenstående kode....

Jensgram: er det sådan at jeg kan få dig til at lave et eksempel på det?
Avatar billede jensgram Nybegynder
21. februar 2005 - 17:52 #14
Ja, det kan du da!

Dine FAQ's

<div id="faq1">
    <p><a href="java script:fremhaev(1);">Hvordan spiser man ild?</a></p>
    <p>Det er bare noget man kan!</p>
</div>

<div id="faq2">
    <p><a href="java script:fremhaev(2);">Hvordan spiser man ræve?</a></p>
    <p>Det er bare noget man skal lade være med!</p>
</div>


Scriptet:

function fremhaev(q) {
    cnt = 2; // Vi har p.t. 2 spørgsmål (faq1 og faq2) - den lettest måde

    for (i = 1; i <= cnt; i++) {
        if (i == q) {
            c = 'red';
        } else {
            c = 'white';
        }
        document.getElementById('faq' + q).style.backgroundColor = c;
    }
}
Avatar billede jensgram Nybegynder
21. februar 2005 - 17:55 #15
Det er absolut utestet, men burde virke. Flere ting kunne laves mere elegant, men idéen er god nok (vil jeg hævde).

"cnt" har jeg medtaget, da du så blot kan ændre den, når du indsætter et nyt spm. Forudsat slf, at du navngiver dem "faq1", "faq2", ... "faqN", så der er 1, 2, ... N  spm.

"c" er den baggrundsfarve som markerede spm vil få (rød) og den til alle andre (hvis) for at kunne nulstille andre (som evt. kan være valgt fra tidligere), når der vælges et spm. Du kan slf også benytte "#rrggbb"- og "rgb(r, g, b)"-syntaks
Avatar billede mr-bob Nybegynder
21. februar 2005 - 21:34 #16
Tusind tak. det vil jeg lige kigge på. Skal nok komme tilbage og give point..

bob
Avatar billede mr-bob Nybegynder
23. februar 2005 - 09:16 #17
Jens smider du ikke også lige et svar?
Avatar billede jensgram Nybegynder
23. februar 2005 - 11:40 #18
Joda, hvis det kunne bruges
Avatar billede mr-bob Nybegynder
23. februar 2005 - 11:45 #19
alt kan bruges....

Takker for hjælpen alle sammen..

Mvh Bob
Avatar billede jakobclausen Nybegynder
23. februar 2005 - 11:49 #20
Takker for point!
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