如何通过iframe将php变量传递给javascript
I am trying to pass a php variable value, through an iframe over to a javascript variable. All files are on my own server and domain.
This is my html file:
<html>
<head>
<?php
$userOutput = "bob";
?>
</head>
<body>
<p id="test123"><?=$userOutput?></p>
</body>
</html>
And in my original page i try to access the information like this:
<iframe id="iframeId" src="http://path/to/file.html"></iframe>
<script>
window.onload = function() {
var iframeDoc = document.getElementById('iframeId').contentWindow.document;
var test = iframeDoc.getElementById('test123').value;
console.log(test);
};
</script>
Now, i do manage to reach my content, and i have tried before to just get the value of some input field i put in my "file.html" with success, but i can't seem to reach the php variable value ("test" shows up as undefined)
我试图将一个php变量值,通过iframe传递给一个javascript变量。 所有文件都在 我自己的服务器和域。 p>
这是我的html文件: p>
&lt; html&gt;
&lt; head&gt;
&lt; ?php
$ userOutput =“bob”;
?&gt;
&lt; / head&gt;
&lt; body&gt;
&lt; p id =“test123”&gt;&lt;?= $ userOutput?&gt;&lt; / p&gt;
&lt; / body&gt;
&lt; ; / html&gt;
code> pre>
在我的原始页面中,我尝试访问如下信息: p>
&lt ; iframe id =“iframeId”src =“http://path/to/file.html”&gt;&lt; / iframe&gt;
&lt; script&gt;
window.onload = function(){
var iframeDoc = document .getElementById('iframeId')。contentWindow.document;
var test = iframeDoc.getElementById('test123')。value;
console.log(test);
};
&lt; / script&gt;
pre>
现在,我确实设法访问我的内容,我之前尝试过获取我在“file.html”中成功输入的某些输入字段的值, 但我似乎无法达到php变量值(“测试”显示为未定义) p>
div>
So anything that holds php needs to go into a .php file rather than a .html
as an example:
variableStored.php
:
<html>
<head>
<?php
$userOutput = "Frrrrrrr";
?>
</head>
<body>
<p id="test123">
<?php echo $userOutput; ?>
</p>
</body>
</html>
Take Note: when echo'ing out, its always best to <?php echo 'something';?>
rather than <?='something'?>
Then within lets say iframe.html
:
<iframe id="iframeId" src="http://siteurl/variableStored.php"></iframe>
<script>
window.onload = function() {
var iframeDoc = document.getElementById('iframeId').contentWindow.document;
var test = iframeDoc.getElementById('test123').value;
console.log(test);
};
</script>
This will then fetch everything from variableStored.php
as you want it to.
You could echo
your variable in a Javascript variable like
<script>var test = "<?= $variable ?>";</script>
And pass the variable as GET parameter to your iframe.
<script>
var url = "myIframe.html?var1=" + test;
$('#myIframe').attr('src', url");
</script>
You can then retreive the info using
<script>
function getParamValue(paramName)
{
var url = window.location.search.substring(1); //get rid of "?" in querystring
var qArray = url.split('&'); //get key-value pairs
for (var i = 0; i < qArray.length; i++)
{
var pArr = qArray[i].split('='); //split key and value
if (pArr[0] == paramName)
return pArr[1]; //return value
}
}
</script>
I want to give credit to @Ozgur bar for his answer here. How to pass parameters through iframe from parent html?