2017-02-21 1 views
0

Ich versuche, einen PHP-Variablenwert über einen Iframe über eine Javascript-Variable zu übergeben. Alle Dateien sind auf meinem eigenen Server und Domain.Wie PHP Variable über Iframe an Javascript übergeben

Dies ist meine HTML-Datei:

<html> 
<head> 
    <?php 
     $userOutput = "bob"; 
    ?> 
</head> 
<body> 
    <p id="test123"><?=$userOutput?></p> 
</body> 
</html> 

Und in meiner ursprünglichen Seite Ich versuche, die Informationen wie diese zuzugreifen:

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

Nun, ich verwalte mein Gehalt zu erreichen, und i habe schon versucht, nur den Wert eines Eingabefeldes zu bekommen, das ich in meine "file.html" mit Erfolg gesetzt habe, aber ich kann nicht scheinen, den PHP-Variablenwert zu erreichen ("Test" erscheint als undefiniert)

+1

Nach dem Ausführen Ihres Codes scheint es gut zu funktionieren? In der Datei, in der Ihre PHP-Variable ist, haben Sie die Datei als .php gespeichert? – Option

+0

Es wird als HTML-Datei gespeichert und der PHP ist in sie eingebettet. – RealGigex

+0

Also, wo '$ userOutput' ist, habe ich es gespeichert wie sagen file.php und dann die andere Datei, wo der JS ist ich es als file2.html gespeichert und alles funktioniert gut? Können Sie 'phpinfo();' in Ihrer .php Datei ausführen? Nur um sicher zu sein, dass PHP so eingerichtet ist, wie es sein sollte. – Option

Antwort

1

etwas, so dass PHP hält muss in eine Php-Datei gehen, anstatt eine .html

als Beispiel:

variableStored.php:

<html> 
<head> 
    <?php 
    $userOutput = "Frrrrrrr"; 
    ?> 
</head> 
<body> 
    <p id="test123"> 
     <?php echo $userOutput; ?> 
    </p> 
</body> 
</html> 

zur Kenntnis nehmen: wenn echo'ing out, es ist immer am besten zu <?php echo 'something';?>

eher als <?='something'?> können innerhalb iframe.html

Dann sagen:

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

Das wird dann alles von variableStored.php holen, wie Sie es möchten.

+0

Danke! änderte es auch zu . – RealGigex

+0

Kein Problem! – Option

0

Sie könnte echo Ihre Variable in einer Javascript-Variable wie

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

Und die Variable als GET-Parameter an Ihre iframe übergeben.

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

Sie können dann die Info

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

Ich möchte hier für seine Antwort auf @Ozgur bar zu verwenden retreive Kredit. How to pass parameters through iframe from parent html?

+0

Haben Sie den Operationscode vor der Beantwortung ausgeführt? – Option

+0

@Option habe ich eigentlich nicht. Sollte ich ? – Nicolas

+0

Ich würde, es funktioniert in Ordnung für mich, so kann ich nur annehmen, es ist mit dem Ops PHP auf dem lokalen Rechner Ops zu tun. – Option

Verwandte Themen