Avatar billede galadrijela Nybegynder
21. marts 2006 - 15:20 Der er 16 kommentarer og
1 løsning

Et levende link i teksten fra db

Jeg har følgerne kode til at hente en tekst fra access db.

rsSQL = "SELECT * FROM diskusion WHERE iddiskusion = " & id & ""
  set rs = Conn.execute(rsSQL)
    tekst=rs("svar")
      dbteksten=Replace(tekst, vbCrLf, "<br>")

og jeg udskriver den i html kode
<p class="diskusion"><%=dbteksten%></p><br>

Alt det er helt fint, men hvis det bliver skrevet et link, det er bare almindelig tekst. Hvad kan jeg gøre at link blive læst som et link (så man kan faktisk klikke på den) og ikke bare almindelig tekst.
Avatar billede nidyahou Praktikant
21. marts 2006 - 15:28 #1
er problemet at den skriver <a href="url">tekst</a> i plan tekst og ikke ind i html koden?
Avatar billede galadrijela Nybegynder
21. marts 2006 - 15:35 #2
Jeg har en textarea hvor man kan skrive teksten. Og hvis jeg f.eks.skriver "Du kan finde det på www.google.com". Den tekst bliver gemt i db, og når program henter den ud fra db, den bliver skrevet ud som en almindelig tekst, ikke link.

Hvis jeg tilføjer en knappe hvor der stå "link" og når man skrive teksten og kommer til det sted hvor det skal være link klikke på knappen, og det blev automatisk skrevet ned "<a href="www.google.com">tekst</a>... hvordan kan jeg gør det... uhhhhh

Er det muligt?
Avatar billede mclemens Nybegynder
22. marts 2006 - 02:09 #3
??? du snakker om at man sidder inde i en form og skriver f.eks.
"Du kan finde det på www.google.com" og så vil du gerne have en onsubmit function der går ind og afslæser det folk har skrevet i feltet for herefter at lave www....dk om til <a href="www....dk">www....dk</a> inden formularen sendes til databasen ???

- hvis det er tilfældet vil det "næsten" være bedre at redigere database resultatet inden det skriver på siden så www....dk bliver lavet om til et link via .php eller .asp ... det gør om ikke andet at din database er mindre :)

- alternativet er at have et script der når siden er loadet laver alle links med www.etellerandet.dk om til et link...
Avatar billede mclemens Nybegynder
22. marts 2006 - 02:14 #4
eksempel på sidst nævnte:
den chacker de div's der har className==userinput
... det skal nok rettes lidt til afhængig af sidens opbygning = ?

(notits til andre der ikke kan lide innerHTML måden: prøvede på at bruge appendNode , removeNode, childNode, item(0) m.v. for at bruge noget mere moderne end innerHTML, men det blev lige lidt for indviklet - lige p.t. om ikke andet)



<html><head>
<script type="text/javascript">

window.onload=function(){
bodyen=document.getElementsByTagName("body");
bodydivser=bodyen[0].getElementsByTagName("div");
for(runit=0;runit<bodydivser.length;runit++){
  if(bodydivser[runit].className=="userinput"){

  txt=bodydivser[runit].innerHTML;

  orgreptxt=/http:\/\/(www.[^ ]*)/ig;
  newreptxt="$1";
  txt=txt.replace(orgreptxt,newreptxt);

  orgreptxt=/(www\.[^ ]*)/ig;
  newreptxt="http://$1";
  txt=txt.replace(orgreptxt,newreptxt);

  orgreptxt=/(http:\/\/[^ ]*)/ig;
  newreptxt="<a href=\"$1\">$1</a>";
  txtnew=txt.replace(orgreptxt,newreptxt);

  bodydivser[runit].innerHTML=txtnew;

  }
}
}

</script></head>

<body>

<div class="userinput">www2.test.dk http://tes1t.dk/dfsfdf/-d,&#?sad_/ http://www.test.dk Dette er en test.Danmark er et yndigt land.</div>

<div class="nouserinput">www.test.dk http://test.dk http://www.test.dk Dette er en test.com er et yndigt land.</div>

<div class="userinput">www.test.dk http://test.dk http://www.test.dk Dette er en testhttp://løsning.af.opgaver.giver.erfaring.</div>

</body></html>
Avatar billede mclemens Nybegynder
22. marts 2006 - 13:20 #5
chacker = checker ... lidt dum stavefejl :P
Avatar billede galadrijela Nybegynder
22. marts 2006 - 15:39 #6
Mange tak for Mange tak for din indsats men det har ikke hjulpet mig. Den tekst som blev læst ud fra db kommer stadig ud som en almindelig tekst… ikke link. :((
Avatar billede mclemens Nybegynder
22. marts 2006 - 16:46 #7
som nævnt i løsningsforslaget:
... det skal nok rettes lidt til afhængig af sidens opbygning = ?>

- html struktur -
hvad er tagName for det felt hvor userinputs postes?
<td> <div> <p> m.v.???

-evt. eksempel på resultat af udskrift af userinputtet i html strukturens sammenhæng...
Avatar billede galadrijela Nybegynder
22. marts 2006 - 16:55 #8
Hvor dum kan man være når man er for hurtigt... sorry... har lavet fejl. Din forlsget virker helt fint :))) Det var det som jeg havde brug for.
Du får selvfølgeligt dit points :)

Har stadig lidt problem... hvordan kan det link åbne sig i en nye window? Det åbner sig nu ind i frame, og det er ikke særlig smart... :(

Er ikke helt vant til det system... hvordan giver jeg dit points? :)
Avatar billede roenving Novice
22. marts 2006 - 17:02 #9
target="_blank" i linket !-)

-- og uddeling af point kan kun ske til forslag, som er postet som svar, så bed du mclemens om at lægge et svar, markér hans navn i boksen til venstre og tryk på Acceptér !o]
Avatar billede mclemens Nybegynder
22. marts 2006 - 17:03 #10
svar ;)
- klik på mit navn ud for svaret og herefter godkend...

her er lige et nyt script med target på...

<script type="text/javascript">

window.onload=function(){
bodyen=document.getElementsByTagName("body");
bodydivser=bodyen[0].getElementsByTagName("div");
for(runit=0;runit<bodydivser.length;runit++){
  if(bodydivser[runit].className=="userinput"){

  txt=bodydivser[runit].innerHTML;

  orgreptxt=/http:\/\/(www.[^ ]*)/ig;
  newreptxt="$1";
  txt=txt.replace(orgreptxt,newreptxt);

  orgreptxt=/(www\.[^ ]*)/ig;
  newreptxt="http://$1";
  txt=txt.replace(orgreptxt,newreptxt);

  orgreptxt=/(http:\/\/[^ ]*)/ig;
  newreptxt="<a href=\"$1\" target=\nytvindue\">$1</a>";
  txtnew=txt.replace(orgreptxt,newreptxt);

  bodydivser[runit].innerHTML=txtnew;

  }
}
}

</script>
Avatar billede mclemens Nybegynder
22. marts 2006 - 17:04 #11
dang glemte at refreshe ... sorry roenving
Avatar billede galadrijela Nybegynder
22. marts 2006 - 17:06 #12
I er bare fantastiske... tak en gang til. Er glad nu :))))
Avatar billede galadrijela Nybegynder
22. marts 2006 - 17:07 #13
Har jeg gjort alt som skulle... fik du dit points?
Avatar billede mclemens Nybegynder
22. marts 2006 - 17:07 #14
erstat evt. \(manglede en " her)nytvindue\"
i scriptet ud med \"_blank\"

som roenving foreslår så konflikter det
ikke hvis brugeren har et andet
vindue/frame med samme navn..
Avatar billede mclemens Nybegynder
22. marts 2006 - 17:09 #15
Har jeg gjort alt som skulle... fik du dit points?>

den gik ikke igennem... prøv igen mit
navn ud for svaret og herefter godkend
(cookies skal være aktiveret når du gør det)
Avatar billede galadrijela Nybegynder
22. marts 2006 - 17:11 #16
Nu lykkes det :))
Avatar billede mclemens Nybegynder
22. marts 2006 - 17:14 #17
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