как передать переменную php через iframe в javascript

Я пытаюсь передать значение переменной php через iframe в переменную 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 (» тест «отображается как неопределенный)

0

Решение

Поэтому все, что содержит 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 как хочешь.

1

Другие решения

Вы могли бы echo ваша переменная в переменной Javascript, как

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

И передайте переменную как параметр GET в свой iframe.

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

Затем вы можете получить информацию, используя

<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 bar за его ответ здесь. Как передать параметры через iframe из родительского html?

0

По вопросам рекламы [email protected]