Avatar billede whizzper Nybegynder
09. maj 2005 - 18:48 Der er 10 kommentarer og
1 løsning

innerHTML update?

Hey..!

Jeg er igang med en chat, jeg har det sted hvor man kan se de beskeder andre har skrevet (bliver opdateret ved hjælp af innerHTML), så har jeg den side hvor man rykker rundt med en figur (bliver opdateret ved hjælp af META Refresh).

Jeg vil MEGET gerne have gjort sådan at den iframe med figurene bliver opdateret ved hjælp af innerHTML, koden til det system med figurene ser sådan her ud:

<?php

// Init Start
$xc=0; //position x counter
$yc=0; // guess..

$xscale=10; // Antal brikker til henad ->
$yscale=5;
$found="none";
// Init Stop

echo('<table border="0" cellspacing="0" cellpadding="0">');
echo('<td cellspacing="0" cellpadding="0"');

//DEBUG
$bruger="$_GET[brugernavn]"; // Laves om til $_SESSION..
//DEBUG STOP

if(empty($_GET['action'])) { $_GET['action'] = "none"; }

// Opdater database med positioner;
if($_GET['action'] == 'move') {
    $newx=$_GET['x'];
    $newy=$_GET['y'];
    mysql_query("UPDATE feltsystem SET x='$newx', y='$newy' WHERE brugernavn='$_SESSION[Brugernavn]'") or die(mysql_error());
}
// stop

//Y count
echo('<table border="0" cellspacing="0" cellpadding="1" height="10" width="70">
');
while($yc <> $yscale) {
    $yc++;   
    echo('<tr>');
    $xc=0;
    while($xc < $xscale) {
    $xc++;
   
   
    $res=mysql_query("SELECT * FROM feltsystem WHERE rum = '$rum[id]'");
    while($pos=mysql_fetch_array($res)) {
    if($pos['y']==$yc && $pos['x']==$xc) {
            echo("<td><img src=$pos[figur]><br>");
            echo("<FONT FACE=Verdana SIZE=1 COLOR=#000000><a href=profil.php?navn=$pos[brugernavn] target=frame_text>$pos[brugernavn]</a>");
            echo("</FONT>");
            echo("</td>");
        $xc++;
            }
        }
        if($xc != $xscale) {
        echo('<td width="70"><a href="?x='.$xc.'&y='.$yc.'&action=move"><img src="layer.gif" border="0"></a></td>');
    }
        }
   
    echo('</tr>');

}
echo('</td>');
echo('</table>');
echo('</table>');
?>



Nogle der ved hvad man kan gøre??
Jeg vil gerne give 100 point til hvis dette problem kan løses :)
Avatar billede olebole Juniormester
09. maj 2005 - 19:07 #1
<ole>

Ja, i princippet kan du skrive noget à la:

<script type="text/JavaScript">
window.onload = function() {
    parent.document.getElementById("gnu").innerHTML = document.body.innerHTML;
}
</script>

- i dokumentet ovenfor og loade det i en skjult iframe med et div ved siden af:

<iframe src="chat.php" style="display:none"></iframe>
<div id="gnu">&nbsp;</div>

/mvh
</bole>
Avatar billede whizzper Nybegynder
09. maj 2005 - 19:11 #2
Okay, dvs. <div id="gnu">&nbsp;</div> at jeg kan udskifte &nbsp; med min kode ovenfor, f.x?
Avatar billede olebole Juniormester
09. maj 2005 - 19:11 #3
- men det ændrer ikke ved, det er en gang skidt kode, du har  :)

For det første echo'er man _aldrig_ i en løkke - men skriver i stedet til en buffer, der udskrives én gang.
For det andet skriver man _aldrig_ HTML ud på serveren, når man skriver en chat. Man henter kun de rå data og formaterer så HTML'en på klienten.
Ellers bliver applikationen urealistisk dårligt performende
Avatar billede whizzper Nybegynder
09. maj 2005 - 19:14 #4
Jeps man skulle nok til at studere noget .NET, eller noget Java :-)
Jeg vil prøve at følge dit råd, tak :)
Avatar billede olebole Juniormester
09. maj 2005 - 19:20 #5
Det kan sagtens gøres langt bedre i PHP, end du gør nu - men ellers er Java et godt bud. Er man god til PHP og JavaScript, tror jeg til gengæld ikke, det kan gøres meget bedre i .NET
Avatar billede whizzper Nybegynder
09. maj 2005 - 19:45 #6
Jeg ved ikke om du stadigvæk er her olebole, men hvis jeg prøver at gøre som du beskrev i din første post, så sker der ikke noget..!
Jeg bruger chatsystem.php til at vise iframes..!
Jeg har en iframe "rykkesystem.php" den hedder "rykke"
Så har jeg en iframe "skjultryk.php" den hedder "ryk"

Skjultryk.php ser således ud:

<div id="gnu">
test
<?php

// Init Start
$xc=0; //position x counter
$yc=0; // guess..

$xscale=10; // Antal brikker til henad ->
$yscale=5;
$found="none";
// Init Stop

echo('<table border="0" cellspacing="0" cellpadding="0">');
echo('<td cellspacing="0" cellpadding="0"');

//DEBUG
$bruger="$_GET[brugernavn]"; // Laves om til $_SESSION..
//DEBUG STOP

if(empty($_GET['action'])) { $_GET['action'] = "none"; }

// Opdater database med positioner;
if($_GET['action'] == 'move') {
    $newx=$_GET['x'];
    $newy=$_GET['y'];
    mysql_query("UPDATE feltsystem SET x='$newx', y='$newy' WHERE brugernavn='$_SESSION[Brugernavn]'") or die(mysql_error());
}
// stop

//Y count
echo('<table border="0" cellspacing="0" cellpadding="1" height="10" width="70">
');
while($yc <> $yscale) {
    $yc++;   
    echo('<tr>');
    $xc=0;
    while($xc < $xscale) {
    $xc++;
   
   
    $res=mysql_query("SELECT * FROM feltsystem WHERE rum = '$rum[id]'");
    while($pos=mysql_fetch_array($res)) {
    if($pos['y']==$yc && $pos['x']==$xc) {
            echo("<td><img src=$pos[figur]><br>");
            echo("<FONT FACE=Verdana SIZE=1 COLOR=#000000><a href=profil.php?navn=$pos[brugernavn] target=frame_text>$pos[brugernavn]</a>");
            echo("</FONT>");
            echo("</td>");
        $xc++;
            }
        }
        if($xc != $xscale) {
        echo('<td width="70"><a href="?x='.$xc.'&y='.$yc.'&action=move"><img src="layer.gif" border="0"></a></td>');
    }
        }
   
    echo('</tr>');

}
echo('</td>');
echo('</table>');
echo('</table>');
?>
</div>

Rykkesystem.php ser således ud:

<script type="text/JavaScript">
window.onload = function() {
    parent.document.getElementById("gnu").innerHTML = document.body.innerHTML;
}
</script>
Avatar billede jokkejensen Novice
09. maj 2005 - 20:06 #7
.Net er bare et server script som php, så der vil du ikke få de store fordele.

For at lave chat osv spændende ville jeg kigge lidt på macromedia's communikations server... ret fin til nemt at lave multi chat, webcam, rigtig tale, spil mm...

ex www.isketch.net <- men der er mulighed for meget mere..
Avatar billede whizzper Nybegynder
11. maj 2005 - 21:43 #8
Olebole - kan du se problemet? jeg syntes det ligner fuldstændigt det eksempel du gav mig
Avatar billede olebole Juniormester
13. maj 2005 - 13:35 #9
- synes du det ...?!??!!! Jeg kan hverken få hoved eller hale i det, du har skrevet  :)
Avatar billede whizzper Nybegynder
16. maj 2005 - 16:27 #10
jamen hvordan gør man så? oprettede spørgesmålet for at få hjælp, men jeg ved sq ikk hvad jeg skal gøre her :(
Avatar billede whizzper Nybegynder
13. juni 2005 - 20:40 #11
lukker spg....
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