Datenübergabe von JavaScript auf eine PHP - Variable
Telas
- programmiertechnik
Hallo Leute
Ich benötige Hilfe bei einem HTML / JavaScript (/PHP) Problem.
Innerhalb eines <Form ..
<FORM ACTION=search.php3 METHOD=POST>
<INPUT
Bereichs habe ich ein eigenes Frame mit
<iframe src="bseditor/iframe.php" class="iframe" marginheight="5" marginwidth="5" frameborder="1" width="605" height="100" id="text_1IFrame" name="text_1IFrame"></iframe>
eingefügt.
Die zu ändernden Daten wurden mit
<script language="JavaScript1.2" type="text/javascript" unselectable="on">
<!--
document.frames.text_1IFrame.document.open();
document.frames.text_1IFrame.document.writeln('<? echo $row[3]; ?>');
document.frames.text_1IFrame.document.close();
--></script>
in das Frame kopiert.
Jetzt kann ich die Daten aus dem Frame mit einem anderen Programm bearbeiten und in den Frame zurück schreiben.
Jetzt meine Frage:
Wie kann ich jetzt die geänderten Daten wieder aus dem Frame in meine <Form übernehmen?
Ich glaub es geht nur mit einer JavaScript Function die die Daten mit "return 'Daten'" zurückgibt. Aber wie muß das ganze im "<INPUT "-Bereich des Form eintragen?
Für alle Hilfen, auch wenn Sie nicht direkt die Lösung bringen, bin ich dankbar.
Telas
Hallo Telas,
<FORM ACTION=search.php3 METHOD=POST>
Gib ihm noch einen Namen. (name="...") Außerdem solltest Du Attribute immer in Anführungszeichen setzen, ist besserer Stil.
<script language="JavaScript1.2" type="text/javascript" unselectable="on">
Ein Attribut namens unselectable gibt es nicht, und selbst wenn es das gäbe, würde es für <script> keinen Sinn machen. (wenn ich mal aus dem Namen den potentiellen Sinn dieses Attributs erschließe) language="..." kannst Du Dir auch sparen, das bringt gar nichts. (andererseits schadet es natürlich auch nicht, wenn Du es drin lässt)
Wie kann ich jetzt die geänderten Daten wieder aus dem Frame in meine <Form übernehmen?
Ins Formular schreiben: Du brauchst ein Hidden-Field, das Du dann mit document.forms['formularname'].elements['namedeshiddenfeldes'].value = ...; »vollstopfst«.
Wie Du den Inhalt des IFrames ausliest, kann ich Dir allerdings nicht sagen, bei einer HTML-Seite wüßte ichs, aber Du schreibst ja nur Text rein... Vielleicht fällt zu diesem Punkt jemandem noch etwas ein. Prinzipiell greift man auf das Dokument, das sich in IFrames befindet, mit document.getElementById('namedesiframes').contentDocument oder alternativ window.frames['namedesiframes'].document zu - Du kannst ja mal window.frames['namedesiframes'].document.body.innerHTML probieren (so geht es bei HTML-Dokumenten) - ob das bei einem reinen Textdokument klappt, weiß ich allerdings nicht.
Viele Grüße,
Christian
Hallo Cristian
Danke für die Hilfe!!!
Leider hat es nicht so hingehauen wie du es beschrieben hast. Aber durch deine Hinweise und anregungen habe ich jetzt einen Weg gefunden. Deswegen nochmal Danke!
---------------------------------------------------------------
Lösung:
<Form NAME=Speichern ACTION="search.php3" METHOD="POST" onclick="ContentText()">
INPUT TYPE ........
<SCRIPT LANGUAGE="JavaScript"><!--
function ContentText()
{ document.Speichern.content.value=document.frames.text_1IFrame.document.body.innerHTML; }
//--> <SCRIPT>
<iframe src="bseditor/iframe.php" class="iframe" marginheight="5" marginwidth="5" frameborder="1" width="605" height="100" id="text_1IFrame" name="text_1IFrame"></iframe>
<script language=" type="text/javascript"><!--
document.frame.text_1IFrame.document.open();
document.frame.text_1IFrame.document.close();
document.frames.text_1IFrame.document.body.innerHTML=document.Speichern.content.value;
.......
Ich übergebe beim aufruf den Inhalt aus dem Editierfeld content in das Frame auf das ich mit einem HTML-Editor zugreifen kann.
Das Speichern des Inhaltes Frame auf das Editierfeld content klappt mit onClick funktion ContentText.