Avatar billede labisama Nybegynder
30. marts 2009 - 16:28 Der er 10 kommentarer og
1 løsning

Tag cloud?

Hej!

Jeg har lavet en "mini" blog, hvor man til sidst kan skrive nogle tags i et INPUT-felt. Det er muligt at skrive flere tags i feltet adskilt med komma.

Tagsne bliver gemt i en mysql tabel sammen med blog teksten.

Hvordan kan jeg nemmest udskrive en tagcloud?

Der er jo også forskel på om brugeren skriver tags med mellemrum efter komma m.m.

Jeg ved at tagsene nok skal udskrives enkeltvis fra et array. Men kan ikke lige selv se en god løsning.

Nogle som kan hjælpe mig lidt på vej?

På forhånd tak...
Avatar billede olebole Juniormester
30. marts 2009 - 17:00 #1
<ole>

"Tagsne bliver gemt i en mysql tabel sammen med blog teksten." >> Mon det nu er hensigtsmæssigt? Jeg ville lægge tags i en tabel for sig med to kolonner: 'id' og 'tag'. Jeg ville så indsætte én række for hvert tag - og indsætte en ID, der refererer til blog indlæggets ID. Det giver formodentlig langt hurtigere søgninger  ;o)

/mvh
</bole>
Avatar billede labisama Nybegynder
30. marts 2009 - 17:56 #2
Ja okay det er jo også en mulighed.

Hvordan ville man så kunne seperere tagsene fra INPUT feltet? Det er jo også forskelligt hvordan brugeren har skrevet tagsene.
Avatar billede olebole Juniormester
31. marts 2009 - 09:27 #3
Ét ord i hvert input:

<script type="text/javascript">
function addTag() {
    var oCont = document.getElementById("tagCont");
    var oTag = oCont.getElementsByTagName("input")[0].cloneNode(true);
    oTag.value = "";
    oCont.appendChild(oTag);
    oTag.focus();
}
</script>

<div id="tagCont">
<input type="text" name="tag[]">
</div>

<p><button onclick="addTag()">+</button></p>
Avatar billede labisama Nybegynder
31. marts 2009 - 10:51 #4
Tror du misforstod mig lidt der.

Der er altså et felt i formen som hedder tags.
Der skriver brugeren fx. "kat, hund,bil,mor,far".

Så ønsker jeg i PHP at den tager hvert seperat ord/tag, så jeg kan indsætte dem enkeltvis i tabellen (som du anbefalede).

Men fx. har jeg lavet et mellemrum mellem kat og hund. Så det skal den jo samtidig tage højde for.

Gav det mere mening?
Avatar billede olebole Juniormester
31. marts 2009 - 14:02 #5
Jeg tror, du misforstod mig lidt der  ;o)

Jeg ved godt, hvad du tænkte på - men i stedet viste jeg dig en bedre løsning, hvor du ikke behøver gætte dig frem til, hvilke sære metoder til at separere ordene dine brugere kan finde på ... komma, mellemrum, komma og mellemrum, semikolon, semikolon og mellemrum, osv, osv.

Gav det mere mening?
Avatar billede labisama Nybegynder
07. april 2009 - 18:19 #6
Jeg synes ikke at det er den "bedste" grafiske løsning.

Kan man virkelig ikke lave den via PHP arrays?
Avatar billede olebole Juniormester
08. april 2009 - 00:53 #7
Jo, hvis du kan fortælle mig, hvad brugeren anvender som skilletegn. Hvad sker der forresten, hvis et tag er et begreb, bestående af to ord?

Hvordan du vil løse det grafisk er ikke det, vi taler om her. Jeg giver blot et eksempel på, hvordan du kan få brugeren til at gøre det lettere for alle ved at skrive ét tag ad gangen
Avatar billede labisama Nybegynder
08. april 2009 - 18:16 #8
Jeg er også meget taknemmelig for dit eksempel. Men personligt er jeg ikke tilhænger af den måde at gøre det på.

Jeg havde tænkt mig at den skulle adskille ved komma.

Dvs. "hej, med,dig,du gamle"

Så skal følgende ord tages ud:
"hej"
"med"
"dig"
"du gamle"

Og det er med vilje at jeg har undladt mellemrum efter kommaet nogle steder, for det kan man vel godt komme ud for at folk "glemmer" at gøre?
Avatar billede olebole Juniormester
09. april 2009 - 00:28 #9
HTML:
  <form action="fil.php" method="post">
    <input type="text" name="tags">
    .... .... ....
  </form>

PHP:
  $arrTags = explode(",", $POST["tags"]);

- og så kan du bruge trim, når du bruger værdierne:
  print trim( $arrTags[2] );
Avatar billede labisama Nybegynder
09. april 2009 - 10:27 #10
Jamen det var jo lige det jeg søgte.

Tak ole.

Svar tak.
Avatar billede olebole Juniormester
09. april 2009 - 16:24 #11
Selvtak  =)
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