我在这里阅读了很多帖子,但我仍然无法获得从PHP传递到外部JS文件的变量,并想知道是否有人可以提供帮助?
在我的PHP文件中,我有以下内容;
<script type="text/javascript">
var pass_this_variable = <?php $company['website']; ?>;
</script>
<script type="text/javascript" src="/js/track.js"></script>
在JS文件中,我有以下内容;
document.write('<IFRAME SRC="$company['website']" WIDTH="300" HEIGHT="400"></IFRAME>');
我想要实现的是IFRAME打开并填充$ company ['website']中包含的内容。我知道我可以直接在PHP文件中使用IFRAME,但这不是我的功课我的任务。当我在PHP文件中直接使用IFRAME时,它工作正常,如果我在JS文件中指定静态URL,例如http://www.google.com,这也可以正常工作。
有人可以帮忙吗?感谢
编辑:
感谢目前为止的答案,但是我仍然无法让它发挥作用:(
我在track.php(或track.js)中拥有的框架不会加载$company['website']
中指定的网址,但如果我将其更改为http://www.google.com,则其工作正常。由于某种原因,$company['website']
值未被传递:(
答案 0 :(得分:9)
如果你想让你的外部javascript动态,你可以把它变成一个php文件并给出正确的标题,例如:
<script type="text/javascript" src="/js/track.php"></script>
track.php
<?php
// javascript generator
Header("content-type: application/x-javascript");
?>
document.write('<IFRAME SRC="<?php echo $company['website'] ?>" WIDTH="300" HEIGHT="400"></IFRAME>');
答案 1 :(得分:6)
PHP文件(不要忘记回音和引用):
<script type="text/javascript">
var pass_this_variable = '<?php echo $company['website']; ?>';
</script>
<script type="text/javascript" src="/js/track.js"></script>
JS文件(改为使用pass_this_variable):
document.write('<IFRAME SRC="'+pass_this_variable+'" WIDTH="300" HEIGHT="400"></IFRAME>');
答案 2 :(得分:2)
你应该修改这一行:
var pass_this_variable = <?php echo $company['website']; ?>;
添加echo
,它应该可以正常工作
答案 3 :(得分:2)
在JavaScript源代码中调用PHP文件。你可以在这里找到教程:
http://www.javascriptkit.com/javatutors/externalphp.shtml
所以你的代码将是这样的:
<script type="text/javascript" src="track.php?company=<?php echo $company['website']; ?>"></script>
在PHP文件中,您可以通过$_GET
变量获取值,并在 iframe 中使用它。确保清理输入。
答案 4 :(得分:2)
JavaScript为您提供了ajax的功能,用于读取PHP或文本文件。为什么不在解析变量的情况下在PHP文件中创建HTML iframe
,然后收回响应并将其“扔”到div中。
答案 5 :(得分:2)
PHP文件的代码:
$cmp = $company['website'];
echo '<input type="hidden" id="cmp1" name="cmp1" value="' . $cmp . '" />';
用于获取PHP文件值的JavaScript(.js)文件的代码:
var company = document.getElementById('cmp').value;