Dateinamen aus einem PopUp-Fenster an ein Input-Textfeld übergeben


pueth

Grünschnabel
Hallöchen,

ich bin hier Neuling und auch Java macht mir noch ein wenig zu schaffen.
Ich habe zwar schon mit PHP, MySQL und VBA genug zu tun gehabt,
aber Javascript bereitet mit immernoch Bauchweh. :)
Ich habe hier einen Thread gefunden, der beschreibt aber eher die übergabe als array mit dem Link. Ich möchte allerdings keine neue Seite aufrufen, sondern die Daten aus dem PopUp an die vorher geöffnete Seite übergeben.

Wie der Titel schon sagt suche ich ein Script!
Worum geht es genau?

Ich habe eine Seite, alles in PHP, mit Javascript und HTML-Anteilen.
Hier gibt es für de User die Möglichkeit sich ein Avatar zuzuordnen.
Nun habe ich diverse Avatare hochgeladen und lasse sie duch eine PHP-Datei,
welche als PopUp geöffnet wird anzeigen. Dabei werden einfach alle jpg-Dateien ausgelesen.

Nun möchte ich, dass der User, auf ein Bild klickern kann und der Dateiname bzw. Pfad
an die Datei userprofile.php in der Inputbox vom Typ "Text" wiedergeben bzw. übergeben wird.

Ich weis das es technisch möglich ist, da es in Chaträumen etc. praktiziert wird.

Ich habe schon seit Tagen gegooglet, leider bisher erfolglos.

Ich hoffe Ihr könnt mir an dieser Stelle weiter- bzw. auf die Sprünge helfen. :)
 

con-f-use

Erfahrenes Mitglied
Nur Mut, Javascript (Achtung: Javascript ist etwas gänzlich anderes als Java!) ist eine der einfachsten Scriptsprachen überhaupt.

In deinem Fall heißt die Lösung einfach opener. Damit kannst du normal auf das Elternfenster eines Popups zugreifen. Einfach mal den Link lesen (ein Bisschen weiter unten auf der Seite - suche einfach mit STRG-F nach "opener"). Wenn du dann noch Probleme hast, schreib nochmal hier.
 

pueth

Grünschnabel
Erstmal danke für die schnelle Antwort.

Ich habe mich nun durch den link gearbeitet und nen Folgelink dazu. :)
Leider noch ohne Erfolg.
Noch habe ich es nicht ganz verstanden.
Ich hatte es nu folgendermaßen versucht:

onclick="javascript:eek:pener.document.ava = '.trim($dateien[$n+0]).'"

wobei "ava" ja den namen der Inputbox darstellt.

kann man es bei javascript überhaupt mit einer Zuweisung via = bewerkstelligen?

Gruß
Piet
 

con-f-use

Erfahrenes Mitglied
Okay, hatte es schon fast befürchtet, bei dir hapert es an den absoluten Grundlagen. Du solltest dich mit dem Document-Object-Model beschäftigen, damit du lernst, wie man in Javascript korrekt HTML-Elemente anspricht.

Hier mal ein kleines Beispiel für dein konkretes Problem:
HTML:
<!-- Der Code steht im Elternfenster -->

<form>
    <input type="text" id="inputfeld" value="Ein Wert"  />
</form>
HTML:
<!-- Der Code steht im PopUp -->

<input type="button" value="Inhalt des Inputs im Elternfenster ändern!"  onclick="
    opener.document.getElementById('inputfeld').value='Ein anderer Wert'
" />
 
Zuletzt bearbeitet:

pueth

Grünschnabel
Aaaah, ich denk es hat geklickert! :)

Ich versuches es mal leihenhaft darzustellen.

opener = heißt nichts anderes, als das das fenster gemeint ist, aus dem geöffnet wurde

document = sagt jetzt, schaue in dem Inhalt des opener

getElementById("ava") = heißt also nichts anderes, als "gehe zum Element mit der ID namens ava, welches ich im Elternfenster vorher bestimmt habe.
Hier kann ich auch getElementByName nutzen.

value = ist gleich der Wert, den ich dann an mein object übergeben will/werde.

Ich habe es nun getestet und es funktionier einwandfrei, leider aber nur im IE.
Da ich überwiegend FF nutze, bin ich als erstes darüber gestolpert, das es hier nicht funktioniert?

Muss man bei den einzelnen Browsern bestimmte schreibweisen beachten?

Gruß aus dem sonnigen Fürstenwalde
Piet
 

con-f-use

Erfahrenes Mitglied
Du hast es genau erfasst. Schön, dass die Leute anfangen zu denken und nicht mehr alles haarklein erklärt haben wollen, früher war das manchmal ziemlich frutrierend. Dachte mir schon, dass ein Beispiel einfach Wunder wirkt.

Nun zu deinem aktuellen Problem
:
Das mit den Borwsern ist ein leidiges Thema. Es gibt eine Reihe kleiner Besoderheiten in der Herangehensweise mancher Borwser an bestimtme Sachen. Möchte jetzt nicht zu sehr ins Detail gehen, aber mit unter interpretieren sogar fürhere Versionen ein und des selben Browsers Javascript anders, als die späteren.
Bei deinem Problem weiß ich allerdings nicht, warum es im FF nicht funktioniert, eigentlich müsste es so gehen. Versuche mal das ".document" einfach wegzulassen. Wenn's dann noch immer nicht geht, dann poste doch bitte mal einen Link auf die Seite(n) die entsprechenden Seiten oder ihren Quelltext. Vermute nämlich jetzt mal, das Problem, warum es im FF nicht geht liegt woanders...
 

Sven Mintel

Mitglied
Möglicherweise besitzt das <input> nicht die ID, sondern das name-Attribut "ava".

ID und name sind nicht dasselbe, der IE akzeptiert es aber auch, wenn du per getElementById() auf das name-Attribut zugreifen willst, was erklären würde, warum es dort klappt und im FF nicht.
 

pueth

Grünschnabel
Hmm, ick versteh de Welt nimmer, nun geht es!

die userprofil.php
HTML:
  	<tr>
		<td valign="top">
			<strong>Link zu deinem Ava: &nbsp;</strong><br>
			Maximale Bildgröße: 200 x 250 Pixel<br>
<a href="" onclick="avatargalerie=window.open('http://www.loserevier.de/images/avatare/avatare/avatare.php','','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=400,height=425');
und der code im popup in der avatar.php
HTML:
<td><center><img src="<?=trim($dateien[$n+0]);?>" alt="<?=trim($dateien[$n+0]);?>" name="<?=trim($dateien[$n+0]);?>" alt="<?=trim($dateien[$n+0]);?>" title="<?=trim($dateien[$n+0]);?>" value="<?=trim($dateien[$n+0]);?>" onclick="javascript:opener.document.getElementById('ava').value='avatare/<?=trim($dateien[$n+0]);?>'"><br></center></td>
Ick danke euch sehr, ihr habt mir sehr geholfen und meinen Horizont wieder ein Stück weit erweitert. :)

Gruß
Piet

P.S. Ick hab mir Javascript immer schwerer vorgestellt, nun gut, ist ja auch nur ein onclick-ereignis, wenn dat ans richtige scripten geht, würde mir wahrscheinlich immernoch der kopf rauchen. *grins*
Wenigstens hilft es andere Sprachen ein wenig zu beherrschen, um das Grundverständnis mitzubringen.
Ist mir zumindest aufgefallen, als ick mit PHP angefangen hatte, da hatte ick vorher schon gut ein Jahr auf Arbeit in VBA get, wat mir zumindest die Grunderfahrung für den Code hinsichtlich Prüfungen, Schleifen, Variablen etc. gebracht hat.
 
Zuletzt bearbeitet: