Reputation: 85
My problem is pretty simple, but as i still lack proficiency in merging js,php and html, i couldn't find a solution for this problem. The problem involves 3 files:
JS1.js
function foobar(foo){
...
}
here foo is the same foo generated from HTML1.html file
HTML1.html
...<?php
$something = Object->method();
$array = Object->anotherMethod($something);
echo "<script type=\"text/javascript\">
var foo =" . json_encode($array) . ";
</script> ";
?>
...
here i generate the json_encode(d) version of my php array
HTML2.html
...<head>
<script type="text/JavaScript" src="js/JS1.js">
</head>
<body>
...
... onClick = \"foobar(foo)\">";
...
</body>
here, basically, i need it as the parameter to run my foobar js function in JS1.js file
So my question is, how do i pass foo from HTML1.html to HTML2.html?
PS: obivously i have 2 splitted html files because i need them both and both do different things otherwise the problem would have never even occurred :) just to clear things up
Upvotes: 1
Views: 736
Reputation: 23
theres 2 ways you could do it,
or
Upvotes: 0
Reputation: 21442
In this case use a cookie : IN HTML1 , after setting var foo, set it in a cookie then get it from the HTML2
HELPER CODE (http://www.w3schools.com) in js :
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
and
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
Upvotes: 1