Avatar billede kwudo Nybegynder
12. februar 2007 - 15:26 Der er 1 løsning

Fejl i opdatering.

Hej alle sammen.

Jeg har nu prøvet alle metoder på at få min chattekst, til at opdatere uden klik og blink osv.

Jeg fandt dette spørgsmål: http://www.eksperten.dk/spm/139721
Og fulgte phoenixv forklaringer, jeg har nu noget der ser således ud:

Txt.php - Hvor chat teksten er:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<script>
function opdaterSpans(chatindhold) {
if (document.getElementById) document.getElementById(\"iespan\").innerHTML = chatindhold;
else if (document.all) document.all[\"iespan\"].innerHTML = chatindhold;
else if (document.layers) document[\"nslayer\"].document.write(chatindhold);
}
</script>
</head>

<frameset rows=0,* frameborder="NO" border="0" framespacing="0">
      <frame name="chatten" src="txt.php" scrolling="NO" noresize>
      <frame name="skjultFrame" scrolling="NO" noresize src="skjultChat.php">
    </frameset>


<body onLoad=\"parent.skjultFrame.reload(true);\">>

<span id=\"iespan\"><layer id=\"nslayer\">
<?
$hent = mysql_query("SELECT * FROM chattext WHERE til = 'alle' && rum = '$show[rum]' || til = '$show[brugernavn]' && rum = '$show[rum]' ORDER BY id DESC") or die(mysql_error());
if(mysql_num_rows($hent)) {
while($vis = mysql_fetch_array($hent)) {
?>
<table border="0" width="100%">
    <tr>
        <td><? echo $vis[fra]; ?> til <? echo $vis[til]; ?> - <? echo $vis[tid]; ?></td>
    </tr>
    <tr>
        <td><font color="<? echo $vis[farve]; ?>"><? echo nl2br($vis[txt]); ?></font></td>
    </tr>
</table>
<?
}
}
?>
</layer></span>

</body>

</html>

Til txt.php har jeg skjultChat.php som ser sådan her ud:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script language="javascript">
chatHTML = \"<?$hent = mysql_query("SELECT * FROM chattext WHERE til = 'alle' && rum = '$show[rum]' || til = '$show[brugernavn]' && rum = '$show[rum]' ORDER BY id DESC") or die(mysql_error());if(mysql_num_rows($hent)) {while($vis = mysql_fetch_array($hent)) {?><table border="0" width="100%"><tr><td><? echo $vis[fra]; ?> til <? echo $vis[til]; ?> - <? echo $vis[tid]; ?></td></tr><tr><td><font color="<? echo $vis[farve]; ?>"><? echo nl2br($vis[txt]); ?></font></td></tr></table><?}}?>\";
if (parent.chatten.opdaterSpan) {
parent.chatten.opdaterSpan(chatHTML);
setTimeout(\"self.location.reload(true)\",3000);
}
</script>


</head>

<body>

</body>

</html>

det php kode der står er dette fra txt.php

<?
$hent = mysql_query("SELECT * FROM chattext WHERE til = 'alle' && rum = '$show[rum]' || til = '$show[brugernavn]' && rum = '$show[rum]' ORDER BY id DESC") or die(mysql_error());
if(mysql_num_rows($hent)) {
while($vis = mysql_fetch_array($hent)) {
?>
<table border="0" width="100%">
    <tr>
        <td><? echo $vis[fra]; ?> til <? echo $vis[til]; ?> - <? echo $vis[tid]; ?></td>
    </tr>
    <tr>
        <td><font color="<? echo $vis[farve]; ?>"><? echo nl2br($vis[txt]); ?></font></td>
    </tr>
</table>
<?
}
}
?>

Håber virkelig i kan hjælpe mig, så det ikke blinker/siger klik lyde, for kan virkelig ikke selv se fejl i det.
Har gjort PRÆCIS som han har beskrevet i hans svar.
Avatar billede umle-keera Nybegynder
13. februar 2007 - 12:15 #1
Uden klik og blink, så vil du gerne have at det bliver lavet med HXR, også kaldet AJAX i pop-termer.

Til 25 point kan jeg ikke gøre meget mere end at henvise dig til en af de tusindvis af allerede eksisterende chats som er bygget på det princip.

http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=9
http://www.dynamicajax.com/fr/AJAX_Driven_Web_Chat-271_290_291.html
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