Wert aus Tabelle in übergeordnete Seite kopieren

Hallo,

ich habe eine Seite mit einem Eingabefeld und eine Suchseite die als popup aufgeht in der dynamisch eine Tabelle mit den Werten erstellt wird.

Nun brauche ich eine Funktion die onClick() auf das Tabellenfeld den Wert kopiert und in die Ausgangsseite in das Formularfeld trägt.

Dario

etwa so?

 \<!--
 function popup()
 {
 var fenster = window.open("about:blank");
 var c = "\<span style='border:1px solid black;cursor:stuck\_out\_tongue:ointer;' onclick='opener.setValue(this.innerHTML);'\>test\</span\>";

 fenster.document.write(c);
 }

 function setValue(value)
 {
 document.testform.zielfeld.value=value;
 }
 //\>
[click](javascript:stuck_out_tongue:opup();)

mögliche probleme:

  • falls du den inhalt des popup nicht aus der basis-seite generierst (wie hier im beispiel), musst du darauf achten, dass die html-datei für das popup innerhalb des selben domain-kontextes liegt, ansonsten erzeugt das eine zugriffsverletzung.

  • es kann passieren, dass popup-blocker entweder das popup oder den dynamischen (jscript-) inhalt blockt. für einen otto-normal-surfer nicht sehr angenehm…

  • bestimmt noch mehr, was zu beachten ist (browser-kompatibilität und so…)

gruss
ric

Hallo,

danke zunächst für die Antwort.

Sehe ich das richtig, dass das nur zur Generierung deines Testfensters ist:

function popup()
{
var fenster = window.open(„about:blank“);
var c = „test“;

fenster.document.write©;
}

Also mein Popup habe ich bisher so aufgerufen:

function branchensuche() {
sic = window.open(„sic.php“,„SIC“,„width=650,height=600,scrollbars=1“)
sic.moveTo(screen.width*0.10,screen.height*0.10);
sic.focus()
}

Und jetzt habe ich in der aufrufenden Datei das noch mit eingebaut:
(inserieren ist Formular und sic2 das Feld)

function setValue(value){
document.inserieren.sic2.value=value;
}

und in dem Popup-Fenster sic.php habe ich in der Tabelle das onClick-Ereignis: opener.setValue(‚bla‘); eingebaut.

Da kommt dann aber, dass document.inserieren.sic2 Null ist. Ist das das eine Problem was du beschrieben hast?

hallo.

ja, siehst du genau richtig, dass function popup() mein testfenster generiert. ich hätte auch einfach eine zweite datei schreiben können, aber man kann sich darüber streiten, was übersichtlicher ist :smile:
der inhalt der testdatei ist ja noch nicht umfangreich.

Da kommt dann aber, dass document.inserieren.sic2 Null ist.
Ist das das eine Problem was du beschrieben hast?

nein, das ist glaub ich keines der genannten probleme, da die funktion opener.setValue() anscheinend schon ausgeführt wird. die fehlermeldung bezieht sich nämlich auf den code in dieser funktion.

und diese fehlermeldung besagt, dass das formular-element (document.inserieren.sic2) nicht gefunden werden kann. das bedeutet, dass entweder „sic2“ oder „inserieren“ nicht existieren.

ich schlage vor, formularname und feldname auf schreibfehler zu überprüfen.

falls der fehler sich trotzdem nicht finden lässt, wäre es hilfreich, den ganzen code zu sehen.

gruss
ric

hm, Schreibfehler find ich keine - ich stell mal die mir wichtig erscheinenden Passagen rein, weil die beiden Dateien zusammen 1000 Zeilen haben.

das Formular

die Methode in der gleichen Datei:
function setValue(value){
document.inserieren.sic2.value=value;
}

das Feld:
>

Den PHP-Code habe ich auch mal auskommentiert, das scheint es nicht zu sein und kann eigentlich auch nicht. Würde ja überschrieben werden.

Die Tabelle:

while($zeile = mysql_fetch_object($erg)){
echo("");
echo(" $zeile->sic");
echo(" $zeile->branche");
echo("");
}

wenn du einen fehler im jscript suchst, solltest du primär nicht im php-script suchen, sondern im generierten html-code (also normal vom web-server abholen), da php nicht direkt etwas mit jscript zu tun hat!

im generierten html-code sollte dann relativ schnell ersichtlich sein, wo ein fehler ist.

ein möglicher fehlerpunkt wäre, dass sich das input-feld nicht innerhalb des form-tags befindet.

wie dem auch sei, ich habe mal deine ganzen code-fetzen zusammengetragen und daraus einen test-fall erzeugt.
ergebnis: bei mir hat es sowohl unter ie6.0 als auch unter firefox 1.0.2 wunderbar funktioniert.

welche(n) browser benutzt du?

hier die beispiel-dateien:

haupt-datei

 function setValue(value)
 {
 document.inserieren.sic2.value=value;
 }

 function popup()
 {
 sic = window.open("popup2\_pop.html","SIC","width=650,height=600,scrollbars=1")
 sic.moveTo(screen.width\*0.10,screen.height\*0.10);
 sic.focus(); 
 }
[popup](javascript:stuck_out_tongue:opup();)

popup-datei

bla

branche

gruss
ric

Hallo,

danke erstmal soweit für deine Hilfe.

Ich habe allerdings den Fehler immernoch nicht gefunden.

Habe mir mal deinen Code kopiert und es damit ausprobiert um überhaupt mal in den Genuss der Funktion zu kommen. :smile:

Und jetzt habe ich das alles nochmal verglichen, dennoch.

Ist auch mit Sicherheit innerhalb des Formulars, da das ja funktioniert.

Jetzt fällt mir als Grund höchstens noch ein, dass sich das mit irgendwas anderem beißt.

Weil ich hab da nämlich noch einen anderen eigenartigen Fehler.
Ich habe eine Menüleiste mit MouseOver-Effekt (vom Dreamweaver) und der geht obwohl das einfach kopiert ist, auf manchen Seiten bei machen Buttons einfach nicht. Hab den auch wieder raus genommen und neu reingesetzt, aber er will nicht.

Fällt dir da noch ein Grund ein, wo ich ansetzen kann?
Vielleicht irgend eine Inkompatibilität mit anderen Sachen?