webForumDet fria alternativet

Ändra webbadress?

11 svar · 1 573 visningar · startad av Karlingrid

KarlingridMedlem sedan jan. 201210 inlägg
#1

Tjena
Detta blir nog lite rörigt... Jag jobbar med en HTML-sida som hämtar information från en databas. Informationen presenteras på html-sidan i form av text och bild. Texten kommer från olika fält i databasen. Texten i ett av dessa fält blir till en söklänk som innehåller själva sökordet. Ungefär som en adress som säger "sökordet i fältet blabla ska vara='vård'.

Problemet blir när detta ord innehåller åäö, IE fattar inte detta. På något vis vill jag göra något kod som säger att "om en webbadress innehåller åäö, byt ut åäö mot %E5 %E4 %F6"

Databasen har byggts upp under många år och innehåller 60 000 poster, så det är inte aktuellt att ändra där.

Någon som vet hur man fixar detta?

Nate.AMedlem sedan mars 2006296 inlägg
#2

I Javascript heter funktionen för att göra det escape('vård')
http://www.w3schools.com/jsref/jsref_escape.asp

I PHP kan du använda urlencode('vård');
http://se.php.net/manual/en/function.urlencode.php

KarlingridMedlem sedan jan. 201210 inlägg
#3

Ok. Fick det inte att fungera, men är iofs ingen höjdare på detta. Testade:

<script type="text/javascript"> 
		document.write (escape("<a href='http://ord=*'#FLD:040A099;'>#FLD:040A099;</A>")); </script>

#FLD:040A099 är koden som hämtar text från rätt fält i databasen.

Tips?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Kanske nåt sånt härnt:

<script type="text/javascript"> 
		document.write ("<a href='http://ord=" + escape("#FLD:040A099;") + "'>#FLD:040A099;</A>"); 
</script>

mvh

kluringenMedlem sedan juli 2011156 inlägg
#5

Karlingrid skrev:

Databasen har byggts upp under många år och innehåller 60 000 poster, så det är inte aktuellt att ändra där.
Någon som vet hur man fixar detta?

Om bästa lösningen är att ändra i dabasen borde det gå att skriva ett program som ändrar i databasen eller konveterar hela databasen till en ny fil. Man kan i såfall använda valfri programeringsspråk som kan hantera den aktuella databsen. Konverterat filer och databaser har man gjort i alla tider vid behov. Detta behöver bara göras en gång.

Sen måste programmet/programmen som uppdaterar databasen ändras så klart så att alla nya poster sparas på rätt sätt.

KarlingridMedlem sedan jan. 201210 inlägg
#6

som sagt, det är inte aktuellt att ändra i databasen.

Men @nders förslag fungerade efter lite modifikation! Tjoho!

Nu undrar jag bara hur det är med javascript och tillgänglighet på webben? T.ex. funktionshindrade som använder program som läser av webbsidan. Kommer de missa den textbiten?

KarlingridMedlem sedan jan. 201210 inlägg
#7

Jag har förresten läst på många ställen att det anses vara "bad practice" att använda document.write... Har ni några förslag på hur man annars kan göra?

Tack för hjälpen förresten

voigtann1Medlem sedan juni 20019 519 inlägg
#8

Karlingrid skrev:

Jag har förresten läst på många ställen att det anses vara "bad practice" att använda document.write... Har ni några förslag på hur man annars kan göra?

Tack för hjälpen förresten

ha ett element som gå lätt (exempelvis document.getElementById) att hitta och sätt dess innerHTML till samma värde.

KarlingridMedlem sedan jan. 201210 inlägg
#9

voigtann1 skrev:

ha ett element som gå lätt (exempelvis document.getElementById) att hitta och sätt dess innerHTML till samma värde.

Ahh okej. Men förstår inte riktigt hur jag får ihop det?

voigtann1Medlem sedan juni 20019 519 inlägg
#10

innerHTML dokumentation: https://developer.mozilla.org/en/DOM/element.innerHTML

Att leta upp ett element med ett specifikt ID: https://developer.mozilla.org/en/DOM/document.getElementById

KarlingridMedlem sedan jan. 201210 inlägg
#11

Efter att ha googlat som en galning testade jag:

<script type="text/javascript">
function changeLink() 
{
document.getElementById(myLink).innerHTML='<a href="http://blabla=* " + escape("'#FLD:040A099;'") + ">#FLD:040A099; </A>'
}
</script>

 <a id="myLink" href="http://blabla=*'#FLD:040A099;'">#FLD:040A099;</a>

Men det fungerade inte... Är som sagt ingen höjdare på detta...

voigtann1Medlem sedan juni 20019 519 inlägg
#12

getElementById behöver en sträng, inte en variabel (om inte nu variablen är en sträng).

sen innerHTML kommer skriva över den innre HTML texten inne i #myLink, så du kommer få dubbla a-element, vilket känns konstigt.

Sen räcker det ju inte att bara skapa en metod, du måste anropa metoden också: http://jsbin.com/icazam/2/edit

133 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)