Achim: werte an elternfenster kann jemand den code mal checken?

Hallo,

habe es schon mit Hilfe dieser gruppe zu folgendem gebracht.

Eine html-seite in dem auch ein formular ist mit einigen textfeldern ruft dieses untenstehende popupfenster auf.
in diesem fenster werden daten einer db-abfrage angezeigt die man dann per checkbox auswählen kann.
diese ausgewählten werte sollen dann in einem stück (gemeint sind hier alle email1, email2, email3 aller user und in einem stücke (bzw. string) alle mobile_b und mobile_p ausgewählten) an 2 textfelder im elternformular übertragen werden.
momentan habe ich es erstmal so probiert das eine stringverkettung nicht stattfindet und wollte erstmal nur eine ausgewählte email1 übertragen.

Er überträgt aber nur folgendes wenn ich die [] weglasse "undefined";
Da ja mehrere email1 vorhanden sein können habe ich es mit email[] probiert aber da bringt er nur noch fehler.

Weiß jemand rat was und wo hier falsch ist oder wie ich es realisieren sollte?

Wäre toll.

Vielen dank schonmal

Grß Achim

File:  popup.php

<html>
<head><title>test</title>
<script language="JavaScript" type="text/javascript">
<!--
function back(){
    //opener.document.parentForm.parentField.value = document.popupForm.popupField.value;
 opener.document.parentForm.parentField.value = document.popupForm.email1[].value;
    self.close();
    return false;
}
//-->
</script>
</head>

<?php
$db = mysql_connect("localhost","cg_admin","123456");
if (!$db)
 {
 die("Öffnen der Datenbank gescheitert!");
 }

$ok = mysql_select_db("cgdaten",$db);

if (!$ok)
 {
 die("Zugriff auf mysql-db gescheitert");
 }

$query = "select firstname,lastname,username,email,email2,email3,mobile,privatemobile from cg_contacts";

$result = mysql_query($query,$db);
$anzahl = mysql_num_rows($result);
?>
<body>

<form name="popupForm" Method="Post" Action="parent.htm">
<?php

echo "<table border=1>";
echo "<tr><td>Firstname</td><td>Lastname</td><td>E-Mail</td><td>E-Mail-1</td><td>E-Mail-2</td><td>Geschäfts-Mobile</td><td>Private-Mobile</td></tr>";
if ($result)
 {
 while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
 {
?>
 <td><? echo $row["firstname"] ?></td>
 <td><? echo $row["lastname"] ?></td>
 <td><input type="checkbox" name="email1[]" value=<? echo $row["email"]?>><? echo $row["email"]?></td>
 <td><input type="checkbox" name=email2 value=<? echo $row["email2"]?>><? echo $row["email2"]?></td>
 <td><input type="checkbox" name=email3 value=<? echo $row["email3"]?>><? echo $row["email3"]?></td>
 <td><input type="checkbox" name=mobile_b value=<? echo $row["mobile"]?>><? echo $row["mobile"]?></td>
 <td><input type="checkbox" name=mobile_p value=<? echo $row["privatemobile"]?>><? echo $row["privatemobile"]?></td>
 </tr>
<?php
 }
 mysql_free_result($result);
 }
else
 {
 echo "<p>".mysql_error();
 }
 echo "</table>";

?>
<input type="text" name="popupField"> 
<a href="" onClick="back()">OK</a>
</form>
</body>
</html>

File parent.htm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
 <title>hauptformular</title>
<script language="JavaScript" type="text/javascript">
<!--
function goToForm(){

window.open("popup.php",'test',"width=1100,height=400");
}
//window.name = "we";
//-->
</script>
</head>

<body>

<form name="parentForm">
<input type="text" name="parentField">
</form>
<a href="#"
   onclick="goToForm(); return false;">click hereeee</a>

</body>
</html>

  1. Hallo Achim,

    opener.document.parentForm.parentField.value = document.popupForm.email1[].value;

    opener.document.parentForm.parentField.value = document.popupForm.elements["email1[]"].value;

    RTFM!

    Gruesse,
     CK

    1. Hallo,

      das klappte leider nicht.

      Es sind zwar alle Fehlermeldungen weg aber in das Zieltextfeld schreibt er immernoch "undefined"

      Gruß und trotzdem vielen Dank
      Achim

      1. Hallo Achim,

        Es sind zwar alle Fehlermeldungen weg aber in das
        Zieltextfeld schreibt er immernoch "undefined"

        Dann hast du wahrscheinlich mehrere Felder mit dem Namen. Und
        wieder: RTFM! Wie greift man auf verschiedene Array-Elemente
        zu?

        Gruesse,
         CK

        1. hallo,

          Es sind zwar alle Fehlermeldungen weg aber in das
          Zieltextfeld schreibt er immernoch "undefined"

          Dann hast du wahrscheinlich mehrere Felder mit dem Namen. Und
          wieder: RTFM! Wie greift man auf verschiedene Array-Elemente

          Ok. das habe ich jetzt soweit erledigt.
          Nur noch ein Problem.

          ich habe folgendes gemacht.

          function back(){
           var mail1;
              //opener.document.parentForm.parentField.value = document.popupForm.popupField.value;
               for (var i = 0; i < 11; i++){
           //opener.document.parentForm.parentField.value = document.popupForm.elements["email1[]"].value;
           //opener.document.parentForm.parentFieldmail.value = document.popupForm.elements[i].value;
           mail1 += document.popupForm.elements[i].value;
           mail1 += '; ';
           }
           opener.document.parentForm.parentFieldmail.value = mail1;

          self.close();
              return false;
          }

          // die checkboxen !!! genau es sind mehrere mit dem gleichen namen je nachdem wie oft die schleife durchlaufen wird

          while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
           {
          ?>
           <td><? echo $row["firstname"] ?></td>
           <td><? echo $row["lastname"] ?></td>
           <td><input type="checkbox" name="email1" value="<? echo $row['email'];?>"><? echo $row["email"]?></td>
           <td><input type="checkbox" name="email2" value="<? echo $row['email2'];?>"><? echo $row["email2"]?></td>
           <td><input type="checkbox" name="email3" value="<? echo $row['email3'];?>"><? echo $row["email3"]?></td>
           <td><input type="checkbox" name="mobile_b" value="<? echo $row['mobile'];?>"><? echo $row["mobile"]?></td>
           <td><input type="checkbox" name="mobile_p" value="<? echo $row['privatemobile'];?>"><? echo $row["privatemobile"]?></td>
           </tr>
          <?php
           }

          beim cklick auf meinen submit wird nun die o.g. funtion aufgerufen
          und da ich nicht weiß wie ich die anzahl der ausgegebenen datensätze zählen soll
          (bzw. in $row habe ich es aber wie ich diese Anzahl nach javascript bekomme weiß ich nicht)
          habe ich einfach mal die zahl 11 genommen nun werden mir zwar alle checkboxen übertragen (muß später noch abfragen welche aktiviert ist und welche nun zu mail oder zu sms gehört)
          aber die zahl 11 muß natürlich eine variable sein die die anzahl der datensätze enthält (im moment sind es 3 könnne aber ganauso gut 500 sein)

          Mit mail1 bilde ich nur einen string der als ergebnis dann in das eletrnfenster gepostet wird.

          Zum schluss wird/soll es so aussehen das es zwei strings gibt mit mail1 und sms1

          Kann mir nochmal jemand kurz helfen wie ich de antahl der datensätze die in <td>'s angezeigt werden ermitteln kann???

          Gruß und danke Achim