Per Klick Daten in neuem Fenster anzeigen
Hallo allerseits,
ich hab mal wieder eine kleine Frage:
Ich habe eine Liste von verschiedenen Usern, die in einer MySQL-Datenbank gespeichert sind. Nun möchte ich, dass man auf den Namen der jeweiligen Person klickt und sich daraufhin ein Fenster öffnet, in dem ein Textfeld steht, in dem der Name der Person steht, auf den man geklickt hat. Ich klicke also auf Test und es öffnet sich ein kleines Fenster, in dem ein Textfeld mit Test steht.
Gruß,
Üsch
Antwort schreiben
Antwort 1 von rfb vom 04.06.2019, 23:13 Options
diese "kleinen Fenster" nennt man allgemein PopUp.
Syntax zum Aufruf wird hier beschrieben:
SelfHTML -> JavaScript -> window.open()Darin wird ein HTML-Dokument geladen, welches beliebigen Inhalt haben kann.
Wo ist nun deine Frage dazu?
Antwort 2 von Uesch vom 05.06.2019, 13:30 Options
Ja, aber ich will doch, dass beim Klick auf einen Namen (der nicht innerhalb eines Formulars ist), der Name im neuen Fenster erscheint. Also du klicktst auf einen Namen, ein Fenster öffnet sich und da steht: Neue Email an: "Name".
Versteht ihr?
Antwort 3 von rfb vom 05.06.2019, 13:38 Options
Zitat:
Versteht ihr?
nach wie vor verstehe ich nicht wo dein Problem liegt! Kannst du kein PopUp machen? Bekommst du kein HTML-Dokument mit besagtem Inhalt (nur ein Name!) hin?
Zitat:
aber ich will doch
mal eine detaillierte Problembeschreibung incl. bisheriger Lösungsversuche und etwaiger Fehlermeldungen dabei liefern.
Antwort 4 von Uesch vom 05.06.2019, 14:06 Options
Ok, also:
Ich lasse mir mithilfe von PHP und MYSQL alle USer anzeigen, die in der Datenbank vorhanden sind. Dabei soll bei einem Klick auf irgendeinen Namen sich ein neues Fenster öffnen, in dem steht: Sie möchten eine Email schreiben an "Name dessen, auf den man vorher geklickt hat". Dann gibt es da ein kleines Formular und einen Button zum Abschicken. So nun ist die Frage wie man 1.: ihm sagt, dass beim Klick auf einen Namen, er diesen als Variable speichert und 2.: wie man im Popup genau den Namen dann anzeigt, auf den man zuvor geklickt hat! Ich hab es probiert mit einem Popup, aber das eigentliche Problem liegt dabei, dass ich nicht weiß wie man den namen als Variable speichert, denn ich möchte es nicht mit einem Formular machen!
Antwort 5 von dettlef vom 05.06.2019, 14:31 Options
den namen übergibst du über eine an die popup-url angehängte variable: http://www.üsch.de/popup.php?name=detlef
Antwort 6 von Uesch vom 05.06.2019, 15:15 Options
Dachte ich mir auch, aber dann sendet er das Formular ja direkt ab!
Antwort 7 von dettlef vom 05.06.2019, 15:32 Options
welches formular? es ist richtig, dass man solche variablen normalerweise über formulare erzeugt/verschickt. daher vielleicht dein missverständnis. hier geht es aber nicht um ein formular. bei window.open gibst du die adresse des dokuments an, welches im aufpopenden fester angezeigt werden soll. und an diese adresse hängst du die variable dran (das ergebnis ist das gleiche, als hätte man ein formular der methode "get" mit einem inputfeld namens "name" und dem inhalt "detlef" abgeschickt. das heisst diese variable kann unter php ausgewertet werden, als käme sie von einem formular). php erzeugt dann den inhalt des popups mit dem namen des members. dieses dokument ist dann das "emailformular" und dieses wird dann erstmal nur angezeigt und nicht automatisch abgeschickt.
Antwort 8 von rfb vom 05.06.2019, 16:33 Options
Vermutung: du möchtest nicht für jeden Namen ein eigenes Dokument ins PopUp laden?
nehmen wir mal an du hättest im Hauptdokument folgendes:
<span onclick="popup(this)">Otto</span>
dann könnte die Funktion popup() so aussehen:
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
dies sollte dann die Datei
formular.htm?Otto ins popup laden
in formular.htm erhältst du den
Otto dann mittels
var wer = location.search.substr(1);
alles weitere bleibt dir überlassen.
Zitat:
wie man 1.: ihm sagt
du solltest von Browsern als
Browser reden -> auch wenn sie Ärger machen sind es nur
Programme!
Antwort 9 von Uesch vom 05.06.2019, 19:34 Options
Vielen Dank,
ich habe jetzt eine Datei test.html, in der steht:
<script>
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
</script>
<span onclick="popup(this)"><a href="#">Otto</a></span>
Dann hab ich eine Datei formular.htm, in der steht das:
<script>var wer = location.search.substr(1);</script>
Leider zeigt er im Popup aber nix an! Einfach nur Totenleere. Was mach ich falsch?
Antwort 10 von dettlef vom 05.06.2019, 19:52 Options
alles was du hast ist eine scriptvariable mit dem inhalt des angeklickten namens. jetzt brauchst du ein bisschen html und ein formular und dann musst du den value von deinem textfeld^^ auf "wer" setzen:
http://de.selfhtml.org/javascript/objekte/elements.htm#value
Antwort 11 von Uesch vom 05.06.2019, 20:23 Options
und was war dann der Sinn des "Otto"?
Antwort 12 von dettlef vom 05.06.2019, 20:32 Options
Zitat:
und was war dann der Sinn des "Otto"?
du meinst von "?Otto". das war damit in location.search.substr(1) der name des users drinsteht. dieser kommt dann in die variable "wer" und schliesslich landet er im textfeld (durch document.formname.feldname.value=wer).
Antwort 13 von Uesch vom 05.06.2019, 22:08 Options
und wie kriegt man Otto in die Variable?
Antwort 14 von dettlef vom 05.06.2019, 22:12 Options
in die variable "wer"? so:
var wer = location.search.substr(1);
Antwort 15 von Uesch vom 05.06.2019, 22:20 Options
Das heißt, ich habe die formular.htm, in der
var wer = location.search.substr(1);
steht und eine zweite Datei test.html, in der
<script>
function popup(ausloeser) {
var wen = ausloeser.firstChild.data;
MeinFenster = window.open("formular.htm?"+wen, "Zweitfenster", "width=300,height=400,left=100,top=200");
MeinFenster.focus();
}
</script>
<span onclick="popup(this)"><a href="#">Otto</a></span>
steht. Wo genau kommt denn das Formular hin, von dem du vorhin gesprochen hast? In die formular.htm?
Antwort 16 von dettlef vom 05.06.2019, 22:35 Options
also der otto-link und die popup-funktion stehen in dem dokument, welches die mitglieder auflistet. das auslesen von location.search.substr(1) und das formular zum kontakten des mitglieds kommt in das popupdokument (formular.htm).
Antwort 17 von rfb vom 06.06.2019, 09:27 Options
Zitat:
<script>
ist falsch, korrekte Syntax:
<script type="text/javascript">
Wozu soll der Link in
<span onclick="popup(this)"><a href="#">Otto</a></span>
gut sein? Wenn du meine Funktion benutzen willst solltest du auch den Rest so machen wie vorgegeben oder alles umschreiben. So gibts höchstens eine Fehlermeldung!
Und dettlef hat Recht -> du musst in formular.htm eine JavaScript-Funktion einbauen, die mittels
location.search.substr(1)
den übergebenen Namen ausliest.
Was du weiter damit machen willst entzieht sich meiner Kenntnis.
Mit
<script [i](schon wieder den type weggelassen - wo hast du den Unfug gelernt?)[/i]>var wer = location.search.substr(1);</script>
hast du den Otto in der Variablen
wer
. Um ihn anzuzeigen müsstest du
wer
zB. mit
document.write(wer);
irgendwie ausgeben!
Antwort 18 von Uesch vom 06.06.2019, 16:09 Options
Sehr geil.
Habs jetzt endlich verstanden und es klappt.
Danke an euch beide!
Antwort 19 von Uesch vom 06.06.2019, 16:14 Options
Ach noch eine Frage: Wie mach ich folgendes richtig:
<input type="text" name="textfieldName" value="document.write(wer);" readonly size="16"><br>
Also dass im Textfeld Otto steht...
Danke,
Üsch
Antwort 20 von rfb vom 06.06.2019, 17:08 Options
zB so:
dies im head der formular.htm:
<script type="text/javascript">
window.onload=function () {
var wer = location.search.substr(1);
var feld=document.getElementsByName("textfieldName")[0];
if (feld) feld.value=wer;
}
</script>
und dies im body:
<input type="text" name="textfieldName" value="" readonly size="16">