-
Well, the delay happens because the script waits for the page to finish loading (the document.ready state) before changing the color of the table.
You could work around this by inserting the script on the next line that the table is made.
So you would have something like this:
Code:
<table width='400' border='1' id='table_id'>
<tr>
<th scope='col'>ID #1: $id1</th>
</tr>
</table>
<script type="text/javascript">document.getElementById('table_id').style.backgroundColor = '<?php echo $bg2; ?>';
</script>
And, while it wouldn't completely eliminate a delay, it would come very close to it.
-
Why not just do this with css?
-
You could, but calling CSS outside of the <head> tags is generally not a good idea (and causes problems in some browsers).
-
The css can be in the head, are the text files building the whole page, or just parts of it? I don't see any html in the example provided, seeing the whole page layout would be the easiest.
for example
PHP Code:
<?php
//php stuff here
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<?php
echo $define_stuff;
?>
</head>
<body>
<h1>Welcome</h1>
<?php
echo $php_generated_content;
?>
</body>
</html>
-
But he's already defining the bgcolor attribute when the table is being created, which would overwrite the CSS value.
-
Yea, but he doesn't need to define it there he could do it conditionally in the css with the php.
-
I agree with bluewalrus. This is why pre-processing a page then doing the output is best. If that's not possible, it's at least best to do any setup like this (that is-- checking what kind of format you will need) and to be able to output some special (PHP-generated, dynamic, conditional) CSS at the top.
It may take redesigning the page some but it's much better in the end. Your choice.
-
Thanks guys for your help!