views:

67

answers:

3

I have a javascript file that needs a value from a variable in a php script in which the JS file is being called.

<?
$sid = session_id();
?>
<html>
<head>
<script src="javascript.js" type="text/javascript"></script>
...

How can i get $sid into the js file for use?

+4  A: 
<html>
<head>
<script src="javascript.js" type="text/javascript"></script>
<script type="text/javascript">
    var myFile = 'myfile.php?sid=' + "<?php echo session_id() ?>";        
    $('#stuff').fadeOut("fast").load(myFile).fadeIn("fast");
</script>

The order of inclusion somewhat depends on what is inside javascript.js. If you are using the declared 'myFile' variable inside, declare it first. If it's just a lib, e.g. jQuery, declare it afterwards.

Gordon
Changed the order, the variable needs to be before the JS file.
Stefan Mai
How would i place that var in the script as such; $('#stuff').fadeOut("fast").load('myfile.php?sid=').fadeIn("fast");
Patrick
+1  A: 

Why on earth do you pass SID explicity? It should be passed throught cookies by PHP. Any other variable could be passed through sessions.

$('#stuff').fadeOut("fast").load('myfile.php?sid=<?php echo session_id() ?>').fadeIn("fast");

Read more about client/server languages and differences between them.

MiB
A: 
<?
$sid = session_id();
?>
<html>
<head>
<script type="text/javascript">
var sid = '<?= $sid ?>';
</script>
<script src="javascript.js" type="text/javascript"></script>

Now you can use the sid variable in javascript.js, or any other JS code you load AFTER this.

keremkacel