Avatar billede Slettet bruger
16. januar 2002 - 22:32 Der er 9 kommentarer og
1 løsning

Dynamisk ændre tekst i <span> felt i en anden frame.

Hejsa!

Jeg vil gerne have hjælp til en udbygning på noget smart mail ting. Den skifter et billede i en anden fram enår der er ny post, som tjekkes hvert minut i en tom frame. Spørgsmålet jeg fik hjælp til kan ses på http://www.eksperten.dk/spm/149753 og det jeg nu gerne vil er:

Billedet ændres fint, men kan jeg ændre teksten også?
Jeg har følg. liggende i mail tjekker vinduet:

echo \"<body bgcolor=\\\"White\\\" onLoad=\\\"ny_post(); parent.frames[\'midte\'].document.images[\'mailikon\'].src=\'billeder/nymail.gif\'\\\" bottommargin=\\\"0\\\" leftmargin=\\\"0\\\" rightmargin=\\\"0\\\" marginheight=\\\"0\\\" marginwidth=\\\"0\\\" topmargin=\\\"0\\\">\";

og hvis jeg nu lægger en div i mit hovedvindue med id\'en 112 f.eks. kan jeg så sende en string til denne span? Altså hvad den skal indeholde?

Jeg regner med at bruge

<?PHP
$sql = \"SELECT * FROM mail WHERE til = \'$profilnavn\'\";
$result1 = mysql_query($sql);
$antal_mail = mysql_num_rows($result1);

if ($antal_mail == \'1\') {
$ord1 = \" besked\"; } else {
$ord1 = \" beskeder\"; }

$sql2 = \"SELECT * FROM mail WHERE til = \'$profilnavn\' AND status = \'0\'\";
$result2 = mysql_query($sql2);
$antal_nye_mail = mysql_num_rows($result2);

if ($antal_nye_mail == \'1\') {
$ord2 = \" ny\"; } else {
$ord2 = \" nye\"; }

$mailtekst = $antal_mail . $ord1 . \",&nbsp;\" . $antal_nye_mail . $ord2;

?>

og altså sende $mailtekst på samme måde i onbodyload som jeg gør med mailikonet.

Giver det her overhovedet nogen mening? *G*
Avatar billede Slettet bruger
16. januar 2002 - 22:39 #1
Jeg tror man kan gøre noget lign. det her:

onbodyload=\\\"parent.frames[\'midte\'].style.elements.id[\'112\'].value=\'$mailtekst\'\\\"

hvis min <span> har id\'en 112, men hvad er den korrekte syntaks?? Og kan man overhovede dette?
Avatar billede Slettet bruger
16. januar 2002 - 23:49 #2
jeg er vist kommet frem til at

<BODY onload=\" var span_id = parent.frames[\'midte\'].document.getElementById(\'112\'); parent.frames[\'midte\'].span_id.style.backgroundColor = #0033ff;\">

i den ene ramme og

<span id=\"112\">test</span>

i den anden ramme burde skifte baggrundsfarven. Men det gør det ikke. Hvorfor monstro? Og hvordan skifter jeg teksten \"test\" ud med en anden tekst?
Avatar billede nikolajdu Nybegynder
17. januar 2002 - 11:21 #3
Hvorfor fortsatte du ikke bare den gode stil du var inde på :))

parent.frames[\'midte\'].document.getElementById(\'span_id\').style.backgroundColor=
Avatar billede Slettet bruger
17. januar 2002 - 13:42 #4
jeg er ikke med *G*

Såtet totalt af nu LOL
Avatar billede nikolajdu Nybegynder
17. januar 2002 - 13:46 #5
Ok jeg ser nu at du sætter variablen span_id - Den er vel ligegyldig.

<BODY onload=\"parent.frames[\'midte\'].document.getElementById(\'112\').style.backgroundColor = \'#0033ff\';\">

En sidste lille ting er at i følge w3, så må et ID ikke starte med et tal.

id = \"112\"  == Verboten
id = \"a112\" == Sehr schön

/Nikolaj
Avatar billede Slettet bruger
17. januar 2002 - 13:55 #6
ok, nu virker det med farven. Det jeg gerne ville frem til er hvordan jeg ændrer den tekst der lige nu hedder test, så jeg kan få den rigtige besked sat ind. Hvis du kan finde ud af det er jeg nærmest lykkelig. *G*
Avatar billede nikolajdu Nybegynder
17. januar 2002 - 14:07 #7
parent.frames[\'midte\'].document.getElementById(\'112\').innerHTML=\'nikolaj\'

Og adskil så flere kald med ;
Avatar billede Slettet bruger
17. januar 2002 - 14:20 #8
hey! Det er jo kanon det her! tusind tak :) Lægger du ægge lige et svar?
Avatar billede nikolajdu Nybegynder
17. januar 2002 - 14:23 #9
svar :))
Avatar billede Slettet bruger
17. januar 2002 - 15:06 #10
tark!
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