dtsjq28482
2017-02-21 15:37
浏览 80

如何通过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)

图片转代码服务由CSDN问答提供 功能建议

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

这是我的html文件:

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

在我的原始页面中,我尝试访问如下信息:

 &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; 
 <  / code>  
 
 

现在,我确实设法访问我的内容,我之前尝试过获取我在“file.html”中成功输入的某些输入字段的值, 但我似乎无法达到php变量值(“测试”显示为未定义)

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongxun7962 2017-02-21 15:59
    已采纳

    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.

    已采纳该答案
    打赏 评论
  • donglijuan8227 2017-02-21 15:44

    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?

    打赏 评论

相关推荐 更多相似问题