Я прочитал много потоков здесь, но я все еще не могу получить переменную, переданную из 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']. Я знаю, что могу просто использовать IFRAME непосредственно в файле PHP, но это не то, на что мне было поручено выполнение домашних заданий. Когда я использую IFRAME непосредственно в PHP-файле, он отлично работает, и если я укажу статический URL-адрес в JS-файле, например http://www.google.com, это также отлично работает.
Может ли кто-нибудь помочь? благодаря
РЕДАКТИРОВАТЬ:
Спасибо за ответы до сих пор, однако я все еще не могу заставить его работать 🙁
Кадр, который у меня есть в track.php (или track.js), не будет загружать URL-адрес, указанный в $company['website']
, но если я изменю его на http://www.google.com, его рабочий штраф , По какой-то причине $company['website']
не передается 🙁
если вы хотите, чтобы ваш внешний 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>');
Файл 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>');
Вы должны исправить эту строку: var pass_this_variable = <?php echo $company['website']; ?>;
var pass_this_variable = <?php echo $company['website']; ?>;
Добавление echo
и оно должно работать
JavaScript предоставляет вам функциональность ajax для чтения PHP или текстовых файлов. Почему бы вам не создать HTML- iframe
внутри файла PHP с вашими переменными, а затем вернуть ответ и «выбросить» его внутри div.
Код для вашего файла PHP:
$cmp = $company['website']; echo '<input type="hidden" id="cmp1" name="cmp1" value="' . $cmp . '" />';
Код для вашего файла JavaScript (.js), чтобы получить значение файла PHP:
var company = document.getElementById('cmp').value;
Вызовите PHP-файл внутри источника JavaScript. Вы можете найти учебник здесь:
http://www.javascriptkit.com/javatutors/externalphp.shtml .
Таким образом, ваш код будет выглядеть так:
<script type="text/javascript" src="track.php?company=<?php echo $company['website']; ?>"></script>
В PHP-файле вы можете получить значение через переменную $_GET
и использовать его в iframe . Удостоверьтесь, что вы сатилите вход.