I have some Javascript that i want to call when the PHP $SESSION[id] is set.
I have tried this and have had no result:
<?
if(isset($_SESSION['id']))
{
echo "<script type='text/javascript'>
adminbarheaderloggedinevencountdown.style.visibility=='visible';
underadminbarquicklinks.style.paddingTop=='30px';
document.getElementById('logintab').innerHTML == 'Log Out';
document.getElementById('loginorregisterkeyseperator').innerHTML= = '';
document.getElementById('registerkey').innerHTML == '';
document.getElementById('logintab').onclick ==
function(){adminbarheaderloggedout();}
alert('You will now be shown as LOGGED IN. Please Note: this is a DEMO');
</script>";
}
?>
the javascript i wish to run is:
<script type='text/javascript'>
adminbarheaderloggedinevencountdown.style.visibility=='visible';
underadminbarquicklinks.style.paddingTop=='30px';
document.getElementById('logintab').innerHTML == 'Log Out';
document.getElementById('loginorregisterkeyseperator').innerHTML= = '';
document.getElementById('registerkey').innerHTML == '';
document.getElementById('logintab').onclick ==
function(){adminbarheaderloggedout();}
alert('You will now be shown as LOGGED IN. Please Note: this is a DEMO');
</script>
I would be extremely grateful if someone could help me with this as i have tried many things over the past few days and non have worked.
It should work if indeed $_SESSION['id'] is set and your javascript code is valid.
First of all, check is $_SESSION['id'] is set: do a print_r($_SESSION) to check.
If this is ok, then you have a problem with javascript and you should debug it.
if i call the script from an on click function within the "index.php" file this will work although i wish to call it from the "bottom.php" file within the code stated above.
This is because maybe you are trying to access some objects before they are loaded.
Code:
<script type="text/javascript">
document.getElementById('index').innerHTML = 'this is test';
</script>
<div id="index"></div>
will not work, because you try to access the node before it is ready. Instead you must put js after the html, like
Code:
<div id="index"></div>
<script type="text/javascript">
document.getElementById('index').innerHTML = 'this is test';
</script>
Best way to avoid this is to defer execution. Put all in a function and load it after document finished loading.
Code:
<script type="text/javascript">
function inititlaLoad(){
document.getElementById('index').innerHTML = 'this is test';
/*...*/
}
window.onload = inititlaLoad
</script>
or jQuery equivalent (and way better solution)
Code:
<script type="text/javascript">
$(function(){
document.getElementById('index').innerHTML = 'this is test';
/*...*/
})
/* make sure to include jQuery library in order for this to work */
</script>
In the last 2 examples you can put HTML code and JS code wherever you want in the page.
Last edited by hyperionXS; 02-19-2012 at 09:28 AM.
Bookmarks