You are not logged in.

wcf.regNote.message

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

1

Wednesday, April 7th 2004, 11:24am

JavaScript - Werte übergeben

Hallo.
Hat jemand spontan nen Aufruf/Befehl im Kopf, wie ich Werte aus Formularfeldern oder Variablen an ein anderes Script (per klicken auf einen Link) übergeben und es dort u.a. auch direkt wieder in ein Formular einfügen kann?

Habe vor sowas wie ein Adressbuch einzubauen.
Sprich ich wähle aus einem "Drop-Down-Menü" einen Kunden aus. Zu diesem Kunden gibt es diverse Ansprechpartner. Dafür vorgesehen sind drei Formularfeld (Name, Anrede, eMail-Adrese) wo man einmal alles selber direkt eintragen können soll und wo man aber auch auf einen Link klicken können soll, woraufhin sich ein kleines neues Fenster (das Adressbuch) öffnen soll. Hier sollen dann alle bisher bekannten Ansprechpartner zu diesem Kunden aus der Datenbank ausgelesen werden. Wenn man den entsprechenden gefunden hat, dann soll man dort wieder auf einen Link klicken können und es sollen daraufhin der Namen, die Anrede und die eMail Adresse in das vorherige Formular (im ersten Fenster) eingefügt werden.

Die beiden Dateien (erstes Fenster, Adressbuch) habe ich bereits fertig, komplett mit Datenbankabfrage.
Wie ich normalerweise Werte bei Perl übergebe weiß ich ja (mit <form action=..> oder in der URL), aber mir geht es hauptäschlich um die Übergabe vom Adressbuch zurück, da hier das erste Fenster ja nicht neu aufgerufen werden soll, sondern die Daten direkt einfach in die vorgesehen Formularleder eingefügt werden sollen.

Kann mir da jemand helfen?
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Wednesday, April 7th 2004, 11:35am

Ich geh mal davon aus des dein Adressbuch ein popup ist oder ?

Dann kannst du über:

Source code

1
window.opener.document

auf das Parent Document zugreifen und da dann direkt über getElementById() oder form[xxx]. auf die einzelnen Form Dinger zugreifen.

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

3

Wednesday, April 7th 2004, 12:14pm

Der Ephraim wieder. ;) Er weiß alles!! :D 8)
Wenn ich dir auch mal helfen kann, dann sag's einfach, ok?


Quoted

Original von Ephraim
Ich geh mal davon aus des dein Adressbuch ein popup ist oder ?
Was unterscheidet ein normales Fenster denn von einem Popup?
Ich hatte eigentlich vor das neue Fenster einfach per window.open(url, windowName, features) aufzurufen und die Symbolleiste und so nicht anzeigen zu lassen. Dürfte doch das gleiche wie nen Popup sein, oder?
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Wednesday, April 7th 2004, 12:56pm

Genau des meinte ich.
Ich weiß NICHT ;) ob, wenn du ein Fenster über nen ganz normalen link mit
traget=_blank öffnest, des mit dem window.opener funtzt.

Mit window.open gehts ;)

Ciao Ephraim

PS.: Probiers aus und poste des dann mal hier ob des mit nem normalen
Link auch geht, würde mich interessieren ;)

PSS.: Klar ich meld mich dann :), kannst ja auch mal im Linux Teil vorbei gucken da hab ich auch ein Problem ;)

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

5

Wednesday, April 7th 2004, 3:25pm

Ok, bei mir klappt der scheiß einfach nicht. *argh* X( X( X(

Machen wir erst mal, dass ich das Popup aufrufe und einen Wert mit übergebe, den ich im Popup in eine Variable einlesen möchte. Die beiden Seiten/Fenster sind beides Perl-Dateien die HTML ausgeben.

seite1.pl - Eltern-Fenster (also das parent document)
seite2.pl - Popup


seite1.pl

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form action="seite66.pl" method="post" name="kundenauswahl">
   <select name = "kunde">
   <option>Simens
   <option>Bosch
   <option>Schiller
   </select>
</form>

<script type="text/javascript">
<!--
function oeffne_fenster() {
  window.open ("seite2.pl","Adressbuch","width=420,height=150,menubar=no,status=no")
}
//-->
</script>

<a href="javascript:oeffne_fenster()"><img src="logo.gif" border="0" alt=""></a>
Wie bekomme ich den Wert, der in dem Option-Feld ausgesucht wurde, jetzt in das Popup (seite2.pl) und wie kann ich ihn dort einer Variablen zuweisen?
Spaß im Netz auf www.piep001.de

This post has been edited 4 times, last edit by "piep001" (Apr 7th 2004, 3:29pm)


Prometheus

Administrator

Posts: 3,278

  • Send private message

6

Wednesday, April 7th 2004, 6:00pm

also mag sein das ich jetzt total daneben liebe weil ich eh grad bisl durch den wind bin aber im popup die werte bekommst du einfach über $_POST[] oder nicht?
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

7

Wednesday, April 7th 2004, 6:03pm

Wie soll das gehen?
Wenn ich mir im Popup $_POST[] ausgeben lasse, dann soll das was drin stehen?
Vor allem geht es um Perl, nicht PHP.
Spaß im Netz auf www.piep001.de

Prometheus

Administrator

Posts: 3,278

  • Send private message

8

Wednesday, April 7th 2004, 6:48pm

ach ja perl ... hab nur das p am anfang gesehen ... shit ;)
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

9

Wednesday, April 7th 2004, 7:08pm

Hoffe mir kann aber noch irgendwie jemand helfen. Ephraim?
Will erst mal den Wert aus dem Drop-Down-Menü in das Popup kriegen.
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

10

Wednesday, April 7th 2004, 7:53pm

Gut gut dann pack ma des mal an ;)
Ich mach immer nur so code schnipsel zusammebauen musst du des dann :lol:

als erstes musst du deinem Select noch ne Id geben die Unique ist,
damit du es über JavaScript ansprechen kannst:

Source code

1
   <select id="myselect" name = "kunde">


Dann im Javascript holst du dir des Object auf das Select,
dafür brauchen wir die Id:

Source code

1
2
3
function oeffne_fenster() {
  // siehe hier
  var myselect = document.getElementById("myselect");


So dann noch an das pl übergeben damit du des darin dann auch bekommst, dafür brauchen wir die var von oben:

Source code

1
  window.open ("seite2.pl?MySelect=" + myselect.value,"Adressbuch","width=420,height=150,menubar=no,status=no")


Anmerkung zu der Übergabe:
Ein Link kann folgender Maßen aufgebaut sein:
www.meinedomain.de/irgendeinesite.pl?NeV…Var=AndererWert

nach dem '?' kommt erst mal ein Name für ne Variable hier 'NeVar' oder 'NochNeVar'.
Nach der Variablen steht der Wert zu der Variablen, hier 'DerWert' und 'AndererWert'
Mehrere Variablen in einem aufruf werden durch des '&' getrennt.

So alles soweit klar?

Jetzt in deinem PerlScript (der Moderator von hier soll bitte entschuldigen des ich hier jetzt was über Perl schreib ;)):

In Perl bekommt man die übergebenen Variablen über ein CGI Objekt:

Source code

1
2
use CGI;
$CGIObject = new CGI;

So des Object hamma jetzt ;)
Nun zu den Vars:

Source code

1
$value = $CGIObject->param('NamederVar');


Bei NamederVar kommt halt vom obigen Link Beispiel z.B. NeVar rein.
Dann würde in der Variablen $value der Wert 'DerWert' drinstehen.

Wenn du hierzu noch Fragen hast dann stell die bitte im Perl Thread ;)

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

11

Thursday, April 8th 2004, 9:13am

Morgen,
so, gleich mal ausprobiert heute morgen und es funzt ... naja, so fast halt.

Tut mir leid, dass du soviel schreiben musstest, aber mir hätte auch vollkommen der obere Java-Teil gereicht, wenn du mir beim unteren nur gesagt hättest, dass ich mir die Variable ganz normal per ("use CGI") holen kann. Das mache ich bei Perl ja ständig. ;) :)

Quoted

Original von piep001
Wie ich normalerweise Werte bei Perl übergebe weiß ich ja (...in der URL),...
Trotzdem vielen Dank für deinen Mühen.

Ich glaube mein Hauptproblem war zu wissen, wie ich das Formularfeld mit Java inner Variablen speicher und wie ich es an ne URL anhängen kann. Das kannte ich gar nicht.

Was jetzt aber noch nen Problem ist, ist, dass ich mir so zwar nen normales Input-Feld holen kann (klappt perfekt), aber bei nem Auswahlfeld (select option) klappt das irgendwie nicht. Da kriege ich dann immer nichts inner Variable rein.
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

12

Thursday, April 8th 2004, 9:40am

hmmm laut selfhtml und meines Wissen her sollte des aber so funtzen :(

mach mal einen

Source code

1
2
alert(myselect);
alert(myselect.value);

in deiner Funktion.

Beim ersten Alert sollte '[Object]' gemeldet werden und beim zweiten
der Text den du ausgewählt hast.


Geht das nicht dann kannst du beim Javascript des noch ein bissel anders
ausprobieren.
und zwar:

Source code

1
2
3
var myselect = document.getElementById("myselect");
var text = myselect.options[myselect.selectedIndex].value;
alert(text);


So bei dem Alert sollte dann aber wirklich der Wert der Option drin
stehen die du ausgewählt hast.

Ansonsten kannste ja mal die Url hier posten damit man sich des
problem mal direkt anschauen kann ;)

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

13

Thursday, April 8th 2004, 9:55am

Sorry, aber bei beiden Varianten ist die AlertBox, wo der Wert drin stehen sollte, leer. 8o ;(

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select name="Kunde" id="mykunde">
<option>Simens
<option>Bosch
</select>

<script type="text/javascript">
<!--
function oeffne_fenster()
{
var mykunde = document.getElementById("mykunde");
var text = mykunde.options[mykunde.selectedIndex].value;
alert(text);
}
//-->
</script>

<a href="javascript:oeffne_fenster()"><img src="logo.gif" border="0" alt=""></a>
Ich hab das mal aus meinem Quelltext rauskopiert und inne extra HTML-Datei gespeichert, welche ich hier anhängen will. Da HTML nicht erlaubt ist, mach in ne TXT draus, die du dann natürlich mal eben inne HTML umbennen musst.
Ne URL gibt's nicht, da wir hier intern auf Entwicklungsmaschinen arbeiten, die nicht ans Netz angeschlossen sind.
piep001 has attached the following file:
  • seite1.txt (381 Byte - 8 times downloaded - latest: Jul 14th 2009, 3:54am)
Spaß im Netz auf www.piep001.de

This post has been edited 1 times, last edit by "piep001" (Apr 8th 2004, 9:57am)


piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

14

Thursday, April 8th 2004, 1:53pm

Ok, so geht das nicht.
Ich kann mir nur mit "selectedIndex", statt "value", die Zahl der Auswahl holen, also wenn z.B. "Siemens" ausgewählt wurde, dann kriege ich ne 0, bei "Bosch" ne 1, aber nicht den Wert darin.
Dazu muss man folgendes machen:

Das gleiche Beispiel wie am Anfang:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<select name="Kunde">
<option>Siemens</option>
<option>Bosch</option>
</select>


<script type="text/javascript">
<!--
function oeffne_fenster() {
    for (i=0;i<document.forms[0].elements["Kunde"].length;i++) {
        if (document.forms[0].elements["Kunde"].options[i].selected==true) {
            var mykunde = document.forms[0].elements["Kunde"].options[i].text;
            var fenster = window.open("seite2.pl?Kunde=" + mykunde,"Adressbuch","width=420,height=150,directories=no,menubar=no")
            fenster.moveTo((screen.availWidth-500),(80))
        }    
    }
}
//-->
</script>


<a href="javascript:oeffne_fenster()"><img src="logo.gif" border="0" alt=""></a>
So funktioniert es jetzt. Trotzdem Danke an Ephraim, hast mir wie immer gut geholfen!! :)

Zudem muss ich jetzt ja auch wieder Werte vom Popup zurück kriegen und dann dort direkt wieder in bestimmte Formularfelder einfügen. Wenne da schon weiß wie's geht oder so, dann poste das mal bitte! ;)
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

15

Thursday, April 8th 2004, 2:38pm

Man ohhhh man ohhh man bin ich doof ;)

du kannst bei option die value angeben ansonsten bekommst du immer nur
die Zahlen !!!!!!!!!!!!!!1

also
<option value="Siemens">Siemens</option>

sorry des ich des vergessen habe ;)

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

16

Thursday, April 8th 2004, 3:03pm

That's right. Dann wär's gegangen. LOOOOL
Hab's auch gleich wieder in meinem Script geändert, weil das mit der ID einfach ist bzw. hinterher u.U. schneller nachzuvollziehen ist.

Weißte schon wie man bestimmte Werte, die in Variablen gespeichert sind, hinterher wieder zurück bekommt und die dann gleich in die Formularfelder kriegt? 8)
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

17

Saturday, April 10th 2004, 7:42pm

Schick doch einfach mal ne Url von dem halb fertigen dingens dann kann man sich des mal angucken und darüber diskutieren :).
Damit man einfach weiss worüber man redet. .. is dann einfacher.


Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

18

Sunday, April 11th 2004, 1:47pm

Quoted

Original von piep001
Ne URL gibt's nicht, da wir hier intern auf Entwicklungsmaschinen arbeiten, die nicht ans Netz angeschlossen sind.
Spaß im Netz auf www.piep001.de

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

19

Tuesday, April 13th 2004, 8:40am

Upps muss ich übersehen haben :(
Naja dann probier ma's halt a so ;)

Gib deinem Form ne Id z.B. wie der Name, id="kundenauswahl"
Dann kannst du mal probieren ob du über:

Source code

1
2
3
var form = window.opener.document.getElementById("kundenauswahl");

alert(Form);


Nen warning bekommst wo als text dann '[object]' drin steht.
Dann hat er auf jeden Fall des form schon bekommen.

so und wenn des geht dann gibts du den Feldern die du brauchst,
auch noch ne Id und machst des dann so:

Source code

1
2
3
var input = window.opener.document.getElementById("input");
var input_popup = document.getElementById("andersinput");
input.value = input_popup.value;


hmm würds mir trotzdem gerne mal angucken... kannst du des net irgendwo anders uploaden zumindest den Teil ;) ... aber egal so
musst du dich halt mit demhier zufrieden geben :P

Ciao Ephraim

piep001

Intermediate

  • "piep001" started this thread

Posts: 338

Location: NRW

Occupation: Fachinformatiker (AE)

  • Send private message

20

Tuesday, April 13th 2004, 2:44pm

Hi, ein neuer Tag ein neues Glück.

Hab mir das von dir gerade mal durchgelesen und ein wenig probiert.
Mit dem Hochladen muss ich mal schaun, vielleicht kann ich das zu Hause doch mal aufn eigenen Webspace bringen und dir dann mal die URL zukommen lassen. Mal schaun, alles, wenn ich wieder nen neuen CPU-Lüfter habe. :( (ist Sa. Abend abgeraucht, hoffe die CPU lebt noch)


@ Java/Perl Zeug:
Also, wenn ich den Wert (den Kunden) an das Pop-Up übergebe, dann kann ich den Wert dort in einer Variablen speichern und mithilfe dieser dann die entsprechenden Daten aus der Datenbank holen. Zum Beispiel lasse ich mir mit Hilfe des Kunden einen Ansprechpartner und dessen eMail Adresse auslesen. Diese lasse ich dann ganz normal mit HTML in dem Pop-Up ausgeben. Bis dahin klappt alles.
Nun soll der Anwender sich den entsprechenden Ansprechpartner aussuchen und dann auf eine Grafik am Ende der entsprechenden Zeile klicken. Daraufhin sollen die Werte aus den Variablen (die ich aus der Datenbank geholt habe), z.B. $ansprechpartenr und $email wieder zurück an das "Eltern"-Fenster gegeben und dort dann in die vorgesehenen Formularfelder eingetragen werden.

Das mit der Form-Id hab ich getestet und ich kriege beim alert im Popup auch ein fenster mit dem Inhalt [objekt].

Was du jetzt machen willst ist, Werte aus Formularfelder im Pop-Up an Formularfelder im vorherigen Fenster zurückgeben, richtig?
Klappt jedenfalls super. Problem ist jetzt nur, dass ich die Werte, die ich im Pop-Up ausgelsen und Variablen zugeordnet habe, dort nicht in Forumlarfelder schreiben lassen wollte, sondern diese einfach hab ausgeben lassen.
Sprich ich will keinen Wert aus einem Forumlarfeld, sondern nen Wert aus einer Variablen zurückgeben. Geht das auch irgendwie?

So nach dem Motto:

Source code

1
2
3
var input = window.opener.document.getElementById("input");
var input_popup = $email;
input.value = input_popup.value;
Spaß im Netz auf www.piep001.de

wcf.user.socialbookmarks.titel