Iframe Variable an PHP zur Speicherung in der DB

c-i-k-o

Grünschnabel
Hallo Zusammen,

vorerst, ja ich weiss es gibt viele Themen mit ähnlichen Titeln. Allerdings bin ich ein sehr anfänglicher newbie und verstehe nicht so recht was da steht und brauche dringend Unterstützung.

es geht um folgendes:
ich habe folgenden php-Code in der Hauptdatei implementiert, darin ist das iframe:

PHP:
  $questionoutput = "<iframe sandbox='allow-scripts allow-popups allow-forms'
        src='{$url}'
        width='90%'
        height='400'
        name='{$url}'>
        </iframe>";

        return $questionoutput;

der Inhalt des Iframes sieht so aus (es ist nur eine simple testaufgabe zum testen des gesamten):

HTML:
..... hier vor ist der jsscript in welches zwei simple aufgaben implementiert sind.

<body onload="zahl()">

<p>Die Summe von <strong id="zahl1"></strong> und <strong id="zahl2"></strong> ist?</p>
<p><input id="eingabe" width="3"/></p>
<p><button id="ergebnis" onclick="check1()">Pruefe</button></p>

<p>Die Summe von <strong id="zahl3"></strong> und <strong id="zahl4"></strong> ist?</p>
<p><input id="eingabe2" width="3"/></p>
<p><button id="ergebnis2" onclick="check2()">Pruefe</button></p>

<p id="punktegesamt">Gesamtpunkte</p>

</body>

Mein Ziel ist es nun die Variable <p id="punktegesamt">Gesamtpunkte</p> rauszulesen und in eine PHP-Variable zu schreiben. dabei ist zu beachten, dass diese url auf einem anderen webserver liegt und da entstehen wieder fragen der policy, die als nächstes gelöst werden müssen.

Ich bitte um dringende Hilfe. Ich doktore jetzt schon seit längerem rum und komme immer noch nicht zu Ende... Bitte sehr dringend um Hilfe...

Besten Dank und freundliche Grüße
 
Hi,

jquery wird dir dabei helfen. Lese den tag Inhalt aus uns sende es via Post an ein PHP Script.

Wie waren denn deine lösungswege?

Gruß
 
Hi,

jquery wird dir dabei helfen. Lese den tag Inhalt aus uns sende es via Post an ein PHP Script.

Wie waren denn deine lösungswege?

Gruß

das war letzte Nacht der letzte Stand:

PHP:
        $questionoutput = "<form id ="form_content" name="form_content" method="post">       
        <input type="hidden" name="content">
        <iframe id='edit'  name='edit' sandbox='allow-scripts allow-popups allow-forms'
src='{$url}'
        width='90%'
        height='400'
        name='{$url}'>
        </iframe>
        document.getElementById('edit').contentWindow.document.body.innerHTML
        </form>";
return $questionoutput;
    }

wie gesagt bin halt noch ein newbie und weiss nicht genau, ob ich das ganze richtig implementiert habe.
wie meinst du kann mir jquery helfen? und wie funkt das?
 
Zuletzt bearbeitet:
Hi,

wann genau soll der tag denn ausgelesen werden? wenn das Formular ausgefüllt wird? bzw. wie entstehen die Gesamtpunkte?
Sollen die Daten gleich beim ausgeben in der Datenbank gespeichert werden?

Lg
 
also die Gesamtpunkte entstehen in dem IFrame-Objekt so:

HTML:
<html>

<script language="javascript" type="text/javascript">

total = 0;
function zahl() {
        zahl1 = 10;
        zahl2 = 30;
        zahl3 = 20;
        zahl4 = 40;
    document.getElementById("zahl1").innerText = zahl1;
        document.getElementById("zahl2").innerText = zahl2;
        document.getElementById("zahl3").innerText = zahl3;
        document.getElementById("zahl4").innerText = zahl4;
}
      function check1() {
var ergebnis = zahl1 + zahl2;
        ergebnis = document.getElementById("ergebnis").val=ergebnis;
        eingabe = document.getElementById("eingabe").value;
var  p1 = 0;
        if (eingabe == "") {
        alert ("Keine Eingabe");
        } else {
 if (eingabe == ergebnis) {
            p1 = 5;
            alert("richtig " + p1 + " Punkte erreicht");
} else {
        p1 = 0;
            alert("falsch. richtige Loesung ist " + ergebnis);
        }
        }
        //return p1;
        total = total + p1;
document.getElementById("punktegesamt").innerHTML = "Gesamtpunkte: " + total;
    }

 function check2() {
        var ergebnis2 = zahl3 + zahl4;
        ergebnis2 = document.getElementById("ergebnis2").val=ergebnis2;
        eingabe2 = document.getElementById("eingabe2").value;
        var p2 = 0;
if (eingabe2 == "") {
        alert ("Keine Eingabe");
        } else {
        if (eingabe2 == ergebnis2) {
            p2 = 3;
            alert("richtig! " + p2 + " Punkte erreicht");
  } else {
        p2 = 0;
            alert("falsch. richtige Loesung ist " + ergebnis2);

}
        }
      
        //return p2;
        total = total + p2;       
document.getElementById("punktegesamt").innerHTML = "Gesamtpunkte: " + total;
    }
                     
function punkte(){
     var gesamtpunkte = total;
    
  return total;
 }


/script>

<body onload="zahl()">
<p>Die Summe von <strong id="zahl1"></strong> und <strong id="zahl2"></strong> ist?</p>
<p><input id="eingabe" width="3"/></p>
<p><button id="ergebnis" onclick="check1()">Pruefe</button></p>

<p>Die Summe von <strong id="zahl3"></strong> und <strong id="zahl4"></strong> ist?</p>
<p><input id="eingabe2" width="3"/></p>
<p><button id="ergebnis2" onclick="check2()">Pruefe</button></p>
 
<p id="punktegesamt">Gesamtpunkte</p>


</body>
</html>


Genau die Daten sollen direkt in die Datenbank gespeichert werden, wenn Sie entstehen. D.h. wenn ich auf den Button Pruefe klicke, dann sollen die Punkte übergeben werden an php und in die Datenbank gespeichert werden.


irgendwann habe ich mir gedacht dass ich vielleicht ein button:
<p><button id="punktegesamt" onclick="punkte()">Submit</button></p>
hinzufüge und die Variable mit der id punktegesamt dann ausgelesen werden sollen wenn auf den Button Submit geklickt wird.
Aber das ist die ungünstigere Variante.
 
Ich weiß nicht genau, wie das Ganze zu verstehen ist. Wenn der Inhalt des p-Tags immer im HTML des iFrmae zur Verfügung steht, kannst Du das Ganze wahrscheinlich serverseitig lösen. Informiere dich, wie man den HTML-Text aus einer Datei parst und auf die Tags und ihre Inhalte zugreift. Genau weiß ich es nicht, aber ich meine, wenn man es mit PHP macht, kann die Datei auch auf einem anderen Server liegen.
Wahrscheinlich ist dieser Inhalt jedoch das Ergebnis von Interaktionen während der iFrame auf deiner Seite eingebettet ist. (Handelt es sich um ein Spiel?) Dann scheitert das Ganze meines Wissens jedoch an der Same Origin Policy. Du solltest mit dem Betreiber der Seite Kontakt aufnehmen und ihn bitten, dir Zugriff zu geben.
 
es geht um folgendes: ich habe eine testaufgabe (der html code im folgenden) entwickelt. die soll in eine andere php seite eingebettet werden (der php code im folgenden). das einbetten habe ich mittels iframe gelöst (wie im code ja zu sehen ist). ich möchte aber nun die variable bzw die id "punktegesamt" in den php code übertragen, damit ich sie später in der datenbank speichern kann.
HTML:
<html>
<script language="javascript" type="text/javascript">

total = 0;
function zahl() {
        zahl1 = 10;
        zahl2 = 30;
        zahl3 = 20;
        zahl4 = 40;
document.getElementById("zahl1").innerText = zahl1;
        document.getElementById("zahl2").innerText = zahl2;
        document.getElementById("zahl3").innerText = zahl3;
        document.getElementById("zahl4").innerText = zahl4;
}
      function check1() {
var ergebnis = zahl1 + zahl2;
        ergebnis = document.getElementById("ergebnis").val=ergebnis;
        eingabe = document.getElementById("eingabe").value;
        var  p1 = 0;
        if (eingabe == "") {
        alert ("Keine Eingabe");
        } else {
 if (eingabe == ergebnis) {
            p1 = 5;
            alert("Krichtig " + p1 + " Punkte erreicht");
 } else {
        p1 = 0;
            alert("falsch. richtige Loesung ist " + ergebnis);
}
}
    total = total + p1;
document.getElementById("punktegesamt").innerHTML = "Gesamtpunkte: " + total;
    }
function check2() {
        var ergebnis2 = zahl3 + zahl4;
        ergebnis2 = document.getElementById("ergebnis2").val=ergebnis2;
        eingabe2 = document.getElementById("eingabe2").value;
 var p2 = 0;
        if (eingabe2 == "") {
        alert ("Keine Eingabe");
        } else {
if (eingabe2 == ergebnis2) {
            p2 = 3;
            alert("richtig! " + p2 + " Punkte erreicht");
 } else {
        p2 = 0;
            alert("falsch. richtige Loesung ist " + ergebnis2);
}
}
total = total + p2;       
document.getElementById("punktegesamt").innerHTML = "Gesamtpunkte: " + total; }

</script>

<body onload="zahl()">
<p>Die Summe von <strong id="zahl1"></strong> und <strong id="zahl2"></strong> ist?</p>
<p><input id="eingabe" width="3"/></p>
<p><button id="ergebnis" onclick="check1()">Pruefe</button></p>

<p>Die Summe von <strong id="zahl3"></strong> und <strong id="zahl4"></strong> ist?</p>
<p><input id="eingabe2" width="3"/></p>
<p><button id="ergebnis2" onclick="check2()">Pruefe</button></p>

<p id="punktegesamt">Gesamtpunkte</p>

</body>
</html>

so diese testseite wird in diesen code hier wird als iframe in eine andere php datei eingebunden:

PHP:
$questionoutput = "<iframe sandbox='allow-scripts allow-popups allow-forms'
        src='{$url}'
        width='90%'
        height='400'
        name='{$url}'>
        </iframe>";
 
also die anwendung soll später an einer hochschule benutzt werden. der dozent soll eine eigene webseite schreiben in der eine aufgabe enthalten ist. diese seite soll er dann über iframe in die oberfläche der anwendung einbetten können. ziel ist es die punkte aus der vom dozenten spezifizierten seite herauszulesen und die datenbank der anwendung zu speichern
 
Zurück