Avatar billede 123maka Nybegynder
06. november 2003 - 17:17 Der er 7 kommentarer og
1 løsning

Lidt omskrivning

jeg skal bruge lidt omskrivning til noget javascript.

Denne sender text til vinduet

<script type="text/JavaScript">
var a = new Array();

<?
if ($num_rows>0) {
    while ( $row=mysql_fetch_array($res) ) {
        $arr_str .= "a[a.length] = \"".$row["user"]."\";\n";
        $arr_str .= "a[a.length] = \"".$row["status"]."\";\n";
        $arr_str .= "a[a.length] = \"".$row["msg"]."\";\n";
        $s = $row["stamp"];
    }
       
    print $arr_str;
}
?>
parent.writeChat( a );
setTimeout( "location.href='chat.php?s=<?=$s?>'", 2500);
</script>

Denne her printer det ud:
<script type="text/JavaScript">
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>";
        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;
</script>

Kan man gøre så man SELV kan definere tabellerne og hvordan de kan se ud med html?
Kan man gøre at når a[2] er 2 så skal den skrive a[i] hvisker:.

Er dette muligt eller skal der mere information til?
Avatar billede roenving Novice
06. november 2003 - 17:40 #1
1. Du definerer de enkelte cellers udseende med .u- og .m-class'en i dit stylesheet ...

2. Ændr til:

        newCell.innerHTML = "<b>" + a[i] + (a[i]==2)?" hvisker</b>":"</b>";
Avatar billede 123maka Nybegynder
06. november 2003 - 20:43 #2
okay...
hvad nu hvis man vil "inkludere" html til ouputtet.
f.eks som i php
$html = '<tr><td>blablbalbal';
også sætte flere ind som så kommer ud med outputtet... er det muligt?
Avatar billede olebole Juniormester
07. november 2003 - 01:15 #3
<ole>

Den sidste kommentar er temmelig uklar. Hvad mener du med: "også sætte flere ind som så kommer ud med outputtet..."?

/mvh
</bole>
Avatar billede 123maka Nybegynder
07. november 2003 - 12:58 #4
altså... f.eks:
$html = '<tr><td><b>" + a[i] + "</b>';
$html = '</td></tr>';

altså at lave html (mine tabeller) i javascriptet som kommer med i outputtet istedet for tabellerne i javascript.
Avatar billede olebole Juniormester
07. november 2003 - 15:32 #5
Jeg fatter ikke en hat af, hvad du mener  :)
Det, du skriver, er jo netop, hvad der sker ... blot med en lidt anden syntaks - men stadig i JavaScript.
Hvorfor vil du indsætte output'et med en anden syntaks?

I øvrigt er dit eksempel forkert PHP-syntaks. Det ville resultere i en fejl  :)
/mvh
Avatar billede 123maka Nybegynder
07. november 2003 - 15:34 #6
Ja okay... jeg vil godt bare selv bestemme hvordan de der tabeller skal se ud (altså fx. <td bgcolor="#FFFFFF" border="0"> osv.. Men kan jeg læse om hvordan man kan bruge det som du gør i olebole chat?
Avatar billede 123maka Nybegynder
07. november 2003 - 15:42 #7
newCell.innerHTML = "<b>" + a[i] + (a[i+1]==2)?" hvisker</b>":"</b>";
fungerer ikke helt... den skriver bare hvisker Ny bruger logget på.

Mine arr_str er:
        $arr_str .= "a[a.length] = \"".$row["user"]."\";\n";
        $arr_str .= "a[a.length] = \"".$row["status"]."\";\n";
        $arr_str .= "a[a.length] = \"".$row["msg"]."\";\n";
Avatar billede 123maka Nybegynder
02. december 2003 - 14:48 #8
lukket
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