2017-02-21 149 views
0

我想通过一个iframe将一个php变量值传递给一个javascript变量。 所有文件都在我自己的服务器和域上。如何通过iframe将javascript变量传递给javascript

这是我的html文件:

<html> 
<head> 
    <?php 
     $userOutput = "bob"; 
    ?> 
</head> 
<body> 
    <p id="test123"><?=$userOutput?></p> 
</body> 
</html> 

在我原来的网页我尝试访问这样的信息:

<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> 

现在,我设法到达我的内容,我已经尝试过,只是得到一些输入字段的值,我把我的“file.html”成功,但我似乎无法达到PHP变量值(“测试”显示为未定义)

+1

运行你的代码后,它似乎工作正常?在您的php变量所在的文件中,您是否将该文件保存为.php文件? – Option

+0

它被保存为一个html文件,并且php是嵌入其中的。 – RealGigex

+0

所以''userOutput'是,我把它保存为说file.php,然后JS的另一个文件我把它保存为file2.html和所有工作正常?你能否在你的.php文件中运行'phpinfo();'。只是为了确保PHP的设置,因为它应该是。 – Option

回答

1

所以任何持有PHP需要进入一个PHP文件,而不是一个html的

为例:

variableStored.php

<html> 
<head> 
    <?php 
    $userOutput = "Frrrrrrr"; 
    ?> 
</head> 
<body> 
    <p id="test123"> 
     <?php echo $userOutput; ?> 
    </p> 
</body> 
</html> 

注意:当呼应出来,它始终是最好的<?php echo 'something';?>

宁比<?='something'?>

然后内可以说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> 

这将随后从variableStored.php取一切,你想让它。

+0

谢谢!将其更改为<?php echo xxxx?>以及。 – RealGigex

+0

完全没问题! – Option

0

你可以echo您在JavaScript变量变量像

<script>var test = "<?= $variable ?>";</script> 

而且传递变量GET参数到iframe。

<script> 
     var url = "myIframe.html?var1=" + test; 
     $('#myIframe').attr('src', url"); 
</script> 

然后,您可以使用retreive

<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> 

我想给信贷@Ozgur在这里他的回答栏中的信息。 How to pass parameters through iframe from parent html?

+0

你在回答之前是否运行过操作代码? – Option

+0

@Option我其实没有。我是不是该 ? – Nicolas

+0

我会的,它对我来说很好,所以我只能假设它是在Ops本地机器上运行Ops。 – Option