2011-05-14 42 views
4

我在這裏讀了很多線程,但我仍然無法獲得從PHP傳遞給外部JS文件的變量,並想知道是否有人可以協助?在外部JS文件中傳遞一個PHP變量

在我的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(或跟蹤幀。 JS)將不會加載在$company['website']指定的網址,多數民衆贊成,但如果我將其更改爲http://www.google.com其做工精細出於某種原因,$company['website']值沒有被傳遞:(

+0

我將不勝感激你試過我的解決方案。我試過並用不同的'<?php $ company ['website'] =「http://www.example.com/」確認了我的示例; ?>'在PHP文件中。 – AndersTornkvist 2011-05-14 15:20:43

回答

2

你應該修改行: var pass_this_variable = <?php echo $company['website']; ?>;

添加echo,它應該工作

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使用它。確保清理輸入。

8

,如果你希望你的外部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>'); 
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>'); 
+0

如果公司名稱是「Joe的酒吧」,該怎麼辦? :-) – 2011-05-14 10:27:19

+0

@Denis我相信一個正確的URL應該用%27編碼,而不是使用單引號(保留)。因此,在我的例子中,這並不重要。但是,在字符串中考慮換行符,引號等總是一個好習慣。 – AndersTornkvist 2011-05-14 15:13:38

2

JavaScript爲您提供了讀取PHP或文本文件的功能。爲什麼不在你的PHP文件中創建HTML iframe並解析變量,然後收回響應並將它「扔」到div中。

+0

「JavaScript爲您提供了ajax的功能」? AJAX *是* JavaScript。這就是J所代表的。 – 2012-09-01 00:24:13

2

爲你的PHP文件中的代碼:

$cmp = $company['website']; 
echo '<input type="hidden" id="cmp1" name="cmp1" value="' . $cmp . '" />'; 

爲你的JavaScript(.js文件)的代碼文件,以獲得PHP文件值:如果指定了什麼事時,

var company = document.getElementById('cmp').value; 
相關問題