PHP, mySQL og JavaScript
Jeg har siddet og arbejdet på en chat, som jeg har lavet udfra det chat-scipt olebole har lavet:http://tjenester.dk/x-codes.dk/eksperten/chat/
Jeg har søgt hjælp hos OleBole selv, men han har endnu ikke svaret på min mail.
I chat.php har olebole denne kode, som printer teksten til dokumentet:
***********************************************************************************
<script type="text/JavaScript">
var a = new Array();
<?
if ($num_rows>0) {
while ( $row=mysql_fetch_array($res) ) {
$arr_str .= "a[a.length] = \"".stripslashes($row["user"])."\";\n";
$arr_str .= "a[a.length] = \"".date( "h:i:s", $row["stamp"] )."\";\n";
$arr_str .= "a[a.length] = \"".stripslashes($row["msg"])."\";\n";
$s = $row["stamp"];
}
print $arr_str;
}
?>
parent.writeChat( a );
setTimeout( "location.href='chat.php?s=<?=$s?>'", 5000 );
</script>
***********************************************************************************
Mit problem er nu, at jeg gerne vil have printet denne tekst på en anden måde, nemlig noget ala dette:
***********************************************************************************
echo"<table cellspacing=0 border=0 cellpadding=0 style=\"width: 100%; height: 15px;\">
<tr>
<td style=\"vertical-align:top;\"><B>";
if ($row[til] == "test") {
echo"Privat fra";
} elseif (!empty($row[til]) && ($row[fra] == "test")) {
echo"Privat til";
} else {
echo"Fra";
}
echo" $row[fra] ($date): </B></td>
<td style=\"vertical-align:top; text-align:left; width:100%;\">$row[tekst]</td>
</tr>
</table>";
***********************************************************************************
Jeg henter data fra tabelen på denne måde:
***********************************************************************************
$result = mysql_query("SELECT fra, til, tekst, stamp FROM chat WHERE (til = '' || til = 'test' || fra = 'test') && stamp>'$_GET[stamp_to]' ORDER BY stamp DESC") or die (mysql_error());
***********************************************************************************
Men hvordan skal JavaScriptetet se ud, for at beskederne bliver vist på denne måde?
Måske skal der også ændres noget i funktionen writeChat i index.php:
***********************************************************************************
<script type="text/JavaScript">
var maxNumMsgs = <?=$maxNumMsgs?>;
var hiCol = "<?=$hiCol?>";
var loCol = "<?=$loCol?>";
var d=document;
function gE(id){return d.getElementById(id)}
function gA(o,tN){return o.getElementsByTagName(tN)}
function writeChat( a ) {
var tbl = gE("chat");
for (i=0; i<a.length; i+=3) {
var bgCol = ( gA(tbl, "TR")[0].style.backgroundColor=="#ffffff" )? loCol : hiCol;
var newRow = tbl.insertRow(0);
var newCell = newRow.insertCell(0);
newCell.innerHTML = "<b>" + a[i] + "</b><div class=\"time\">[" + a[i+1] + "]</div>";
newCell.className = "u";
var newCell = newRow.insertCell(1);
newCell.innerHTML = a[i+2];
newCell.className = "m";
newRow.style.backgroundColor = bgCol;
}
var numMsgs = gA(tbl, "TR").length;
while ( numMsgs>maxNumMsgs ) {
tbl.deleteRow(numMsgs-1);
numMsgs--;
}
}
window.onunload = function() {
window.open( "logout.php", "logOutWin", "width=100,height=100" );
}
</script>
***********************************************************************************
Jeg håber at en eller anden vil hjælpe mig, da jeg virkelig er gået fast, fordi jeg ikke kan finde ud af at få det til at virke.
Spørg endelig hvis jeg har formuleret mig dårligt, og i derfor ikke forstår hvad mit problem er.
På forhånd tak for hjælpen.
