maninblack: neuer BeitragServerübergreifendes PopUp zum Formular füllen

Hallo alle zusammen,

ich habe ein kleines Problem, und zwar will ich folgendes:

Ich habe ein Formular, in dem ich in einem Textfeld eine Suche eingeben kann und diese dann in einem PopUp ausgeführt wird. Dieses PopUp verweist auf einen anderen Server, auf dem die Suche dann ausgeführt wird. Ich habe das so gelöst, da ich auf dem zweiten Server, auf dem die Suche ausgeführt wird, MSSQL-Verbindungen mit PHP Möglich sind. Dort will ich dann das Ergebnis auswählen und auf dem anderen Server, auf dem sich auch das Forumlar befindet, diese Werte in 3 verschiedene Textfelder einfügen.

Server 1: Server mit Formular
Server 2: Server mit MSSQL-Anbindung

Folgender Code ruft das PopUp auf:
----------------------

<script language="JavaScript">  
function popup(Name)  
{  
var aufruf="http://server2/abfrage.php?name="+Name;  
F1=open(aufruf, "Abfrage", "WIDTH=600,HEIGHT=250,DEPENDET=YES,LOCATIONBAR=NO,MENUBAR=NO,RESIZABLE=NO,STATUS=NO,SCROLLBARS=YES");  
F1.focus();  
};  
</script>

----------------------
(steht im Header der HTML-Seite auf Server 1)

Formular sieht folgendermaßen aus (auf Server 1):
----------------------

<form action="test.php" method="post" name="formular">  
  
<tr><td align=left><h5>Feld 1</h5></td>  
<td><input name="feld_1"> - <?php echo "<input type='button' name='button' onClick='javascript:popup(document.formular.feld_1.value)'>"; ?></td></tr>  
<tr><td align=left><h5>Feld 2</h5></td>  
<td><input name="feld_2"></td></tr>  
<tr><td align=left><h5>Feld 3</h5></td>  
<td><input name="feld_3"></td></tr>

----------------------
Nicht an den Tabellen stören, das ganze hab ich nur in einer Tabelle stehen.

Der Code auf Server 2 sieht folgendermaßen aus:
----------------------

<html>  
<head>  
<title>Untitled Document</title>  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
  
<script language="JavaScript">  
function popup_back(Name,Vorname,eMail,Durchwahl_Tel) {  
        cName = Vorname+' '+Name;  
        opener.document.formular.feld_1.value = cName;  
        opener.document.formular.feld_2.value = eMail;  
        opener.document.formular.feld_3.value = Durchwahl_Tel;  
        opener.focus();  
        self.close();  
}  
</script>  
</head>  
  
<body>  
<?php  
require "connect.inc.php";  
                echo "<table border=1>";  
                $requete = "SELECT * FROM […]";  
                $result = odbc_exec($DB,$requete) or odbc_error();  
                while(odbc_fetch_row($result)) {  
                        $Name = odbc_result($result,"Name Kontaktperson");  
                        $Vorname = odbc_result($result,"Vorname Kontaktperson");  
                        $eMail = odbc_result($result,"EMail");  
                        $Durchwahl_Tel = odbc_result($result,"Telefon Kontaktperson");  
  
                        print("<tr><td>$Name</td>  
                                  <td>$Vorname</td>  
<td><a href='mailto:$eMail' title='eMail an $Vorname $Name schicken'>$eMail</a></td>  
                                  <td>$Durchwahl_Tel</td>  
<td><a href='javascript:popup_back($Name,$Vorname,$eMail,$Durchwahl_Tel)'>ausw&auml;hlen</a></td>  
                                  </tr>");  
                }  
                echo "</table>";  
?>  
</body>  
</html>

----------------------
Ich hoffe ihr könnt mir dabei helfen und mir sagen wie ich das Problem lösen kann.

Ich freue mich schon auf Antworten

MfG
maninblack

  1. ich habe ein kleines Problem, und zwar will ich folgendes:

    Ich habe ein Formular, in dem ich in einem Textfeld eine Suche eingeben kann und diese dann in einem PopUp ausgeführt wird. Dieses PopUp verweist auf einen anderen Server, auf dem die Suche dann ausgeführt wird. Ich habe das so gelöst, da ich auf dem zweiten Server, auf dem die Suche ausgeführt wird, MSSQL-Verbindungen mit PHP Möglich sind. Dort will ich dann das Ergebnis auswählen und auf dem anderen Server, auf dem sich auch das Forumlar befindet, diese Werte in 3 verschiedene Textfelder einfügen.

    wieso Server? du kannst "auf dem Server" nichts ausfüllen. Ansonsten klingt deine etwas krude Beschreibung danach, als ob sie an der SOP scheitern wird.

    Struppi.

    1. wieso Server? du kannst "auf dem Server" nichts ausfüllen. Ansonsten klingt deine etwas krude Beschreibung danach, als ob sie an der SOP scheitern wird.

      Struppi.

      server hab ich nur geschrieben um es auseinanderzuhalten.

      inzwischen bin ich soweit das alles auf einem server ausgeführt wird.

      nun versuch ich das problem zu lösen mit dem ich die SQL-Abfragen aus dem PopUp wieder in die Textfelder einfügen kann.

      1. Struppi.

        Bitte zitiere nur den Teil, auf den sich deine Antwort bezieht, Danke.

        nun versuch ich das problem zu lösen mit dem ich die SQL-Abfragen aus dem PopUp wieder in die Textfelder einfügen kann.

        SQL => Server
        JS => Client

        Um das zu erreichen, musst du auf dem Server eine Antwort erzeugen, die auf dem Client den JS Code ausführt. Im Prinzip das was du in der Funktion popup_back tust, nur das du die Werte ja bereits hast.

        Struppi.

        1. SQL => Server
          JS => Client

          das ist mir bekannt

          Um das zu erreichen, musst du auf dem Server eine Antwort erzeugen, die auf dem Client den JS Code ausführt. Im Prinzip das was du in der Funktion popup_back tust, nur das du die Werte ja bereits hast.

          das verstehe ich net so ganz wie du das meinst.

          ich öffne das popup und führe eine suche in einer MSSQL-Datenbank durch. diese dort gefundenen Daten übertrage ich in die JS-Funktion, die wiederrum die daten mit dem "opener.document" in das alte Formular schreiben soll.

          Von der Theorie sollte das so funktionieren, tut es aber nicht und ich suche jetzt den Fehler, den ich eben nicht finde.

          1. SQL => Server
            JS => Client

            das ist mir bekannt

            Leider klingt das nach deinem Beschreibungen nicht immer so.

            Um das zu erreichen, musst du auf dem Server eine Antwort erzeugen, die auf dem Client den JS Code ausführt. Im Prinzip das was du in der Funktion popup_back tust, nur das du die Werte ja bereits hast.

            das verstehe ich net so ganz wie du das meinst.

            ich öffne das popup und führe eine suche in einer MSSQL-Datenbank durch.

            Das sind solche Punkte, die deine Fragen so schwer verständlich machen. Was du auf dem Server machst ist unrelevant, wenn es eine JS Frage. Du machst einen Request und du bekommst einen Response. Und für die Fragestellung wäre es eigentlich nur nötig zu Wissen, wie diese Antwort aussieht.

            diese dort gefundenen Daten übertrage ich in die JS-Funktion, die wiederrum die daten mit dem "opener.document" in das alte Formular schreiben soll.

            Das konnte man in deinem Code nicht erkennen, aber wenn es so ist sollte es prinzipiell funktionieren.

            Von der Theorie sollte das so funktionieren, tut es aber nicht und ich suche jetzt den Fehler, den ich eben nicht finde.

            Die Fehlerkonsole ist leer?

            Struppi.

            1. Die Fehlerkonsole ist leer?

              Also ich hab mal nachgeschaut und ich habe das Gefühl, dass er bei der Übergabe mit den Emails Ein Problem hat.

              Gibt es eine Möglichkeit die Variablen als String zu betrachten?

              Ich habe mir nun doch mal den Firebug installiert und glaube dass er wohl ein Problem mit den "@" in de Emails hat oder den Punkten oder auch leeren Feldern, da leider nicht immer alle 4 Übergabewerte belegt sind.

              Desweiteren habe ich es einmal "nur" mit dem Namen versucht, dort bekomme ich dann den Fehler "[Name] is noch definded".

              Woran kann das liegen?

              1. Problem gelöst...

                Hab einfach nur die Übergabe-Werte in Anführungszeichen setzen müssen.

                Schon klappt das...

                Aber danke für die Geduld

                1. Problem gelöst...

                  Dank Fehlerkonsole. (Firebug ist nicht nötig um JS Fehler zu finden)

                  Hab einfach nur die Übergabe-Werte in Anführungszeichen setzen müssen.

                  Das war das, was ich meinte, das wir Wissen müssen wie die Antwort aussieht.

                  Struppi.