Avatar billede dennism Nybegynder
21. februar 2003 - 22:50 Der er 33 kommentarer og
1 løsning

DHTML - Gå til bund, efter reload

Jeg har følgende kode, som ellers virker fint. Men som i kan se, har opdaterer dokumentet hvert 5 sek.
Meningen er at dokumentet skal go til "#bund" hver gang det bliver opdateret, men det gør det ikke!

Nogen der kan fortælle hvor fejlen ligger?


<?PHP
include("...");
include("...");
include("...");

if ($_SESSION["loggetind"] == 1) {
?>

<script type="text/javascript">
    function re() {
        self.location.href = "top.php#bund" ;
        self.location.reload() ;
    }
</script>

<body style="background-image: url('../../../images/bg.jpg');" onload="setTimeout('self.location.reload()', 5000) ;">

<?PHP

if ($_POST[chat] == "send_besked") {
echo"hej";
}

$antal = mysql_result(mysql_query("SELECT count(*) FROM chat"),0);
$antal = $antal-50;


$mysql = mysql_query("SELECT fra, til, tekst, date_format(dato, '%H:%i:%s') AS fdato FROM chat WHERE til = '' || til = '$_SESSION[brugernavn]' ORDER BY dato ASC LIMIT $antal,50");
$mysql_antal = mysql_num_rows($mysql);

echo"<table border=0 align=center cellspacing=0 cellpadding=0 style=\"width: 100%; height: 100%; background-color: $bg_color; border: thin solid #000000; border-width: 1px; padding:2px;\">
<tr>
<td style=\"vertical-align:top;\">";

while ($row = mysql_fetch_array($mysql)) {
$row[fra] = strtoupper($row[fra][0]).substr($row[fra], 1);
echo"<table cellspacing=0 border=0 cellpadding=0 style=\"width: 100%; height: 15px;\">
<tr>
<td style=\"vertical-align:top; width:50px;\"><B>$row[fra]&nbsp;($row[fdato]):&nbsp;</B></td>
<td style=\"vertical-align:top;\">$row[tekst]</td>
</tr>
</table>";
}

echo"</td></tr></table>";

} else {
echo"<LI><font color=#FF0000>Du er ikke logget ind.</FONT><BR>";
}

include("...");

?>

<a name="bund"></a>
Avatar billede tangveje Nybegynder
21. februar 2003 - 22:58 #1
Ahh, ser man det :) Havde en eller anden mistanke om at du havde misforstået mig i det andet spm, dette skulle virke, erstat dit nuværende <body> tag med dette

<body style="background-image: url('../../../images/bg.jpg');" onload="setTimeout('re()', 5000) ;">

Stadig mener jeg ikke det er den kønneste måde at gøre det på, som jeg forsøgte at skrive :)
Avatar billede dennism Nybegynder
21. februar 2003 - 22:59 #2
Hvordan er den "kønnest" måde så? :D
Avatar billede dennism Nybegynder
21. februar 2003 - 23:01 #3
Iøvrigt.. Så hjælper det ikke at jeg ændrer min body!
Avatar billede tangveje Nybegynder
21. februar 2003 - 23:03 #4
onload="setTimeout('self.location.reload()', 5000) ;"

Alene, altså uden dette :

<script type="text/javascript">
    function re() {
        self.location.href = "top.php#bund" ;
        self.location.reload() ;
    }
</script>

Det jeg forsøgte at sige, som jeg tror du delvist forstod, var at du så fra starten når du indlæser siden skal indlæse top.php#bund frem for blot top.php i din frame, ellers virker den ikke. Det virkede i hvert fald ganske glimrende for mig, og jeg vil derfor med stor sandsynlighed gætte på at det er det du har glemt.

Håber ikke jeg har forvirret dig nu
Avatar billede dennism Nybegynder
21. februar 2003 - 23:06 #5
Sådan ser min frame ud.. Det er ik her den er gal, vel!?


<FRAMESET FRAMEBORDER="0" FRAMESPACING="0" BORDER="0" ROWS="85%,15%" COLS="100%" onunload="self.window.open('include/side/chat/afslutchat.php','AHV','height=10,width=10,resizable=no,status=no,toolbar=no,menubar=no,location=no')">
    <FRAME SRC="include/side/chat/top.php#bund" NAME="top" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE SCROLlING="yes">
    <FRAME SRC="include/side/chat/bund.php" NAME="bund" MARGINHEIGHT="5" MARGINWIDTH="5" NORESIZE NORESIZE SCROLING="no">
</FRAMESET>
Avatar billede tangveje Nybegynder
21. februar 2003 - 23:10 #6
Kan være jeg forvirrer mere end jeg hjælper, troede lige jeg havde fået øje på fejlen, tror bare jeg stopper her, så jeg ikke skaber mere forvirring... Sorry, håber nogen andre kan se fejlen, for jeg kan da vist ikke :(
Avatar billede dennism Nybegynder
21. februar 2003 - 23:12 #7
Nej du.. Du må endelig blive ved, hvis du tror du kan hjælpe mig!..

Jeg vil jo gerne have det til at virke!.. :D
Så er det sku lige meget at jeg blir' forvirret :D

Skal den <a name="bund"></a> sidde før eller efter </HTML> ?
Avatar billede nicklasb Nybegynder
21. februar 2003 - 23:12 #8
hvorfor egentligt oprette et nyt spørgsmål.. Du har allerede et andet om samme problem åbent her.. http://www.eksperten.dk/spm/320099 ?? Bare nysgerrig..
Avatar billede olebole Juniormester
21. februar 2003 - 23:12 #9
<ole>

Glem alt om ankre ... bare skriv denne kode i det dokument, der skal reloades:

<script type="text/JavaScript">
window.onload = function() {
        setTimeout('location.reload()', 5000)
    scroll(0,100000);
}
</script>

Det er da langt lettere  :)
/mvh
</bole>
Avatar billede dennism Nybegynder
21. februar 2003 - 23:15 #10
nicklasb >>

Vi kom ikke frem til en løsning i det andet sms, så derfor... Jeg har lukket det nu! :D

olebole >>

Super.. Det hjalp sku :D
Avatar billede olebole Juniormester
21. februar 2003 - 23:15 #11
Men jeg går ud fra, der er tale om en chat - og så er det ikke en fiks måde at gøre det på. Hvorfor skriver du ikke sidste besked ind i toppen i stedet? Så går history'en nedad i stedet for opad ... det ggør chatten langt lettere at læse  :)
/mvh
Avatar billede olebole Juniormester
21. februar 2003 - 23:17 #12
Hvis du skriver:
... ORDER BY dato DESC ...
i din query, vender du hhele bøtten og får sidste besked øverst  :)
/mvh
Avatar billede dennism Nybegynder
21. februar 2003 - 23:18 #13
olebole >>

I det fleste chat's der har man da de nyeste indlæg nederst! Eller er det bare mig!?
Avatar billede olebole Juniormester
21. februar 2003 - 23:25 #14
Ja, sådan er det i mange chats (ikke mindst i 'amatør-byggede') og det er da squide irriterende. Så scroller siden hele tiden. Det er langt federe at sidste besked bliver skrevet til foroven. Prøv det ... jeg tror, du vil give mig ret  ;o)
Avatar billede dennism Nybegynder
21. februar 2003 - 23:27 #15
olebole >>

Det vil jeg da lige undersøge :D
Takker for råder...
Avatar billede nicklasb Nybegynder
21. februar 2003 - 23:29 #16
prøv engang et tage et smut forbi http://chatrr.ofir.dk/?sa=0 .. der er den som olebole beskriver ;)
Avatar billede olebole Juniormester
21. februar 2003 - 23:37 #17
Når nu vi har proppen ude af flasken ... der er altså en langt federe måde at lave en chat på. Hvis du laver en skjult iframe og lader den opdatere, kan du skrive iframe-dokumentets indhold ind i et div i hoved-dokumentet.
Hvis du laver et dokument med denne body:

<body>

<script type="text/JavaScript">
function writeChat(obj) {
    var o = document.getElementById("chat");
    o.innerHTML = obj.document.body.innerHTML + o.innerHTML;
}
</script>

<div id="chat"></div>

<iframe src="chat.php" frameborder="0"
    style="position:absolute;width:1px;height:1px;left0px;top:0px;"></iframe>

</body>

--------------------------------

Så skriver du dette i 'chat.php':

<script type="text/JavaScript">
window.onload = function() {
    setTimeout('location.reload()', 5000)
    parent.writeChat(this);
}
</script>

--------------------------------

Så ser du ikke siden opdaterer
Avatar billede dennism Nybegynder
21. februar 2003 - 23:39 #18
Så jeg skal altså bruge iframe istedet for frames eller hva!?

Jeg forstår ik helt hvad du mener!
Avatar billede olebole Juniormester
21. februar 2003 - 23:40 #19
Så skal du kun hive den sidste besked ud og sende til brugeren ... det vil aflaste din server ganske voldsomt  ;o)
/mvh
Avatar billede dennism Nybegynder
21. februar 2003 - 23:41 #20
Hvordan gør jeg sådan at den kun henter den sidste nye besked ud?
Avatar billede olebole Juniormester
21. februar 2003 - 23:42 #21
Nej, du kan også lave det med en skjult frame - hovedsagen er, at du ikke ser siden opdatere. Det er en skjult side, der opdaterer og den skriver det så dynamisk ind i en anden side  :)
Avatar billede dennism Nybegynder
21. februar 2003 - 23:43 #22
Ahva!?... Det fatter jeg altså intet af, det her :(
Avatar billede olebole Juniormester
21. februar 2003 - 23:44 #23
Ved du hvad ... jeg skriver zq lige en lille chat og lægger den i et 0-points spørgsmål. Så kan jeg altid linke til det ... der er jo et par chat.spørgsmål om ugen alligevel. Jeg lægger den nok op om et par timer ... hold øje i PHP-kategorien  ;o)
Avatar billede nicklasb Nybegynder
21. februar 2003 - 23:47 #24
hehe.. god ide.. :)
dennism -> Det han mener er at den i et skjult frame henter den nyeste besked ud.. og når der så er en ny smidder den den over i dit chat-vindue.. Altså skal den ikke så og reloade, og blinke hele tiden.. :) (lettere at forstå, eller mere forvirret?? ;)
Avatar billede dennism Nybegynder
21. februar 2003 - 23:47 #25
Du er en gutter mand!...
Kan jeg ik, på en eller anden måde komme til at give dig nogle point for det?
Avatar billede dennism Nybegynder
21. februar 2003 - 23:48 #26
nicklasb >>

Det forstår jeg godt.. Men hvordan kan jeg lave et script som tester om der er nye beskeder, og så først opdaterer hvis der er nogle!?

olebole >>

Vil du være venlig at sende et eksemplar af dit script til webmaster@demaweb.dk når du har færdigt gjort det?
Avatar billede olebole Juniormester
21. februar 2003 - 23:50 #27
Hehe ... glem points. Jeg er alligevel træt af at sidde og prøve at forklare det samme et par gange om ugen. Nu laver jeg et eksempel, jeg kan linke til.
Points har jeg nok af - og hvis jeg linker til eksemplet en gang imellem, skal der nok falde lidt af i ny og næ  ;o)
/mvh
Avatar billede olebole Juniormester
21. februar 2003 - 23:51 #28
Jeg lægger koderne i et 0-points-spørgsmål her på Ekesperten - så alle får glæde af det  ;o)
/mvh
Avatar billede nicklasb Nybegynder
21. februar 2003 - 23:55 #29
ved ikke just hvordan ole har tænkt sig at gøre det.. men det kunne gøres ved at du hele tiden har en variabel, med det seneste id-nummer i.. Og så kan du tjekke om der er nyere indlæg i databasen.. og i så falde smide den over i chatvinduet.. men det har ole sikkert allerede udtænkt sig en meget bedere plan til.. så bare vent og se.. er ikke i tvivl om at han kommer med noget absolut brugbart.. ;)
Avatar billede dennism Nybegynder
21. februar 2003 - 23:56 #30
Det tvivler jeg heller ikke på :D
Avatar billede nicklasb Nybegynder
21. februar 2003 - 23:58 #31
olebole -> Kan du mærke at forventningerne allerede er skuet op på et ustandseligt højt plan, som bare vokser og vokser, i vores lille natte-sammenslutning?? Det kan da snart ikke blive mere spændende.. hehe.. ej.. du må hellere få ro til arbejded.. hehe.. jeg må også snart komme igang med mine sider.. hehe..
Avatar billede olebole Juniormester
22. februar 2003 - 08:01 #32
Så er den klar, boys ... hyg Jer med den og spørg, hvis I får problemer med den, eller der er kode, I ikke forstår  ;o)
  http://www.eksperten.dk/spm/320350
/mvh
Avatar billede dennism Nybegynder
22. februar 2003 - 10:06 #33
Hmm... Uhyggeligt svært at læse din kode :)
Kan du fortælle mig, hvilken del af koden der gør chatten blink fri?
Avatar billede olebole Juniormester
22. februar 2003 - 16:05 #34
Jeg har lagt en lille forklaring i det andet spm  ;o)
/mvh
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