Avatar billede nickyc Nybegynder
01. juli 2005 - 11:08 Der er 7 kommentarer

javascript link i db?

Hey alle..
Jeg har et lille problem! Har en sted hvor du kan oprette en ny "artikel" der hvor du opretter har du nogle felter man skal udfylde, et af dem er "URL"

Mit problem er at på visse punkter skriver man bare sin URL deri, men sometider skal det være muligt at kunne skrive fx:
onclick="window.open('page2.htm', 'win1','width=200,height=200,menubar'
---------------

Dette kommer jo til at volde problemer når jeg skal skrive det ud på siden, så vil mit link jo se sådanne ud:

<a href="onclick="window.open('page2.htm', 'win1','width=200,height=200,menubar'">

Hvilket ikke duer?

Hvad gør jeg ?
Avatar billede nickyc Nybegynder
01. juli 2005 - 12:04 #1
slet ingen hjælp og hente? Lad mig gerne vide hvis i skal have mere information ?
Avatar billede Slettet bruger
01. juli 2005 - 21:46 #2
Lav to felter:

- et til URL
- et andet til eventuel onclick
Avatar billede olebole Juniormester
02. juli 2005 - 14:58 #3
<ole>

Det er altid en skidt idé at gemme HTML eller anden kode i DB'en. Hvis du om et halvt år omlægger dit design, er du jp så tvunget til at skulle fortsætte med at åbne de pågældende sider i en popup - hvadenten du har lyst eller ej.

Mit forslag:
To felter ... ét me URL'en og ét, der indeholder en integer, der fortæller dit udskrivnings script, hvordan det skal behandle URL'en.

Betydningen af integer'en kan du altid lave om i dit script (bør nok defineres i en central konfigurations fil), hvilket giver dig optimal fleksibillitet  :)

/mvh
</bole>
Avatar billede diggerx Nybegynder
02. juli 2005 - 15:13 #4
Ole -> det er nu ikke så stort et problem med links i databasen. De fleste databaser har da en søg og erstat funktion som kan ordne problemet med designomlægning på et splitsekund
Avatar billede olebole Juniormester
02. juli 2005 - 15:20 #5
Jo, det er et problem af mange årsager. Den version af dit site, der skal vises på PDA'er, mobiltelefoner, i displays på vindjakker og mange andre steder, skal formodentlig serveres med en anden markup - og så er det jo fjollet at have én version i databasen, der skal laves om konstant.

Desuden er der ingen grund til at fylde DB'en op med fuldstændig ligegyldigt markup. Har du 10.000 links af forskellig slags i din DB, har du rigtig mange overflødige bytes liggende og sløver DB og server  ;o)

I en database gemmer man data ... ikke markup  :)
Avatar billede olebole Juniormester
02. juli 2005 - 15:57 #6
Du kunne evt. gøre noget à la:

# Array, der definerer, hvad en integer skal gøre ved en URL:
$aUrlIntegers = array(
    "%{URL}%",
    "<a href=\"%{URL}%\">%{URL}%</a>",
    "<a href=\"%{URL}%\" onclick=\"window.open(this.href, 'win1','width=200,height=200,menubar');return false\">%{URL}%</a>"
);

# Wrap en URL i HTML og returner den:
function getUrlRepresentation($url, $int) {
    global $aUrlIntegers;
    $html = $aUrlIntegers[$int];
    return str_replace("%{URL}%", $url, $html);
}

print "Link, der bliver repræsenteret som alm. tekst: " . getUrlRepresentation("http://www.google.dk", 0) . "<br>";
print "Link, der bliver repræsenteret som alm. link: " . getUrlRepresentation("http://www.google.dk", 1) . "<br>";
print "Link, der bliver repræsenteret som popup: " . getUrlRepresentation("http://www.google.dk", 2) . "<br>";

- så kan du selv fylde flere muligheder i array'et  :)
Avatar billede olebole Juniormester
02. juli 2005 - 16:03 #7
- og skulle du evt, have et ekstra felt med linktekst, kan du skrive:

# Array, der definerer, hvad en integer skal gøre ved en URL:
$aUrlIntegers = array(
    "%{TEXT}%: %{URL}%",
    "<a href=\"%{URL}%\">%{TEXT}%</a>",
    "<a href=\"%{URL}%\" onclick=\"window.open(this.href, 'win1','width=200,height=200,menubar');return false\">%{TEXT}%</a>"
);

# Wrap en URL i HTML og returner den:
function getUrlRepresentation($url, $txt, $int) {
    global $aUrlIntegers;
    $html = $aUrlIntegers[$int];
    $html = str_replace("%{URL}%", $url, $html);
    return str_replace("%{TEXT}%", $txt, $html);
}

print "Link, der bliver repræsenteret som alm. tekst: " . getUrlRepresentation("http://www.google.dk", "Google's site", 0) . "<br>";
print "Link, der bliver repræsenteret som alm. link: " . getUrlRepresentation("http://www.google.dk", "Besøg Google", 1) . "<br>";
print "Link, der bliver repræsenteret som popup: " . getUrlRepresentation("http://www.google.dk", "Pop Google op", 2) . "<br>";
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