Archivlink: javarea.de Forum > JavaScript > Datenübertrag bei einer dynamischen Tabelle eines Popups
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Datenübertrag bei einer dynamischen Tabelle eines Popups

Pages: [1]

geschrieben von Tomni am 20.07.2007 - 17:21
hi,

hab vor 5 wochen php programmieren angefangen. jetzt steh ich seit 3 tagen vor einem problem und komm nicht weiter.

Ich hab auf meiner Hauptseite ein Eingabefeld für die Telefonnummer. Daneben hab ich ein Link zu meinem Telefonbuch.

Das Telefonbuch hat die Möglichkeit per name die Telefonnummer zu suchen. Diese werden dynamisch per php in einer Tabelle ausgegeben (Benutzer hat die Möglichkeit die gewüschte telefonnummer per radio button auszuwählen).

Die ausgewählte Telefonnummer(n) soll(en) nun in das Eingabefeld der Hauptseite eingefügt werden. Mir wurde gesagt es soll per java script gehen! Leider hab ich weder von java, noch von javascript eine ahnung.

Kann mir bitte bitte jemand helfen. Bin echt ratlos und will das irgendwie hinbekommen .


Eingabefeld von der Hauptseite:
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 

<?
<div class="mmsbig">Telefonnumer:</div>
                <
div class="inhaltschrift">    
                    <
input type="text" name="telefonnummer" size="45" class="eingabegeld">
                    <
a target="popup" onClick="window.open('', 'popup', 'width=800,height=900,scrollbars=yes, toolbar=no,status=no,resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"href="telefonbuch.php">Telefonbuch</a>
                </
div>
?>




Und das ist im Popup:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 

</div>    
        <div>Suchbegriff (Vorname ODER Nachname ODER Firma)
        </div>
        <p></p>
        <?php
            
echo '<form method="post" action="">
            <table width="400" border="0">
              <tr>
                <td>&nbsp;</td>
                <td><input type="text" name="suche" size="45" /></td>
                <input type="hidden" name="FUNC" value="1">
                <td>&nbsp;</td>
                <td><input type="submit" name="submit" value="Suchen"></td>
              </tr>
            </table>
            </form>'
;
        if (!empty(
$_POST["suche"])&& (($_POST["FUNC"])== "1")) {
        
$connection=mysql_connect("localhost""root""***") or die ("Verbindungsversuch fehlgeschlagen");
        
mysql_select_db("mmsversand"$connection) or die("Konnte die Datenbank nicht waehlen.");


         
$sql "SELECT telefonbuch_id, vorname, nachname , telefonnummer, firma FROM telefonbuch WHERE nachname like '%".$_POST["suche"]."%' OR vorname like '%".$_POST["suche"]."%' OR firma like '%".$_POST["suche"]."%'";

         
$adressen_query mysql_query($sql) or die("Anfrage nicht erfolgreich");
         
$anzahl mysql_num_rows($adressen_query);
        echo 
"Anzahl der Datensätze: $anzahl \n";

        
?>
        <p></p>
        <table cellpadding="1" cellspacing="3" border="1">
        <tr>
            <td><b>Auswahl</b></td>
            <td><b>Vorname</b></td>
            <td><b>Nachname</b></td>
            <td><b>Firma</b></td>
            <td><b>Telefon</b></td>
        </tr>
    <?php
    
while ($adr mysql_fetch_array($adressen_query)){
    
?>
   <form action=""> <tr>
        <td><input type="checkbox" name="telnr" value="<?=$adr['telefonnummer']?>"></td>
        <td><?=$adr['vorname']?></td>
        <td><?=$adr['nachname']?></td>
        <td><?=$adr['firma']?></td>
        <td><?=$adr['telefonnummer']?></td>
         
    </tr>
    </form>
<?php
    
}   
}
?>
</table>            

</table>
<input type="submit" value="Einfügen" size="40">
    <p><p><p>


geschrieben von Micha am 20.07.2007 - 17:33
Hallo,

Dein Code zeigt mir auf den ersten Blick nicht die relevanten Teile, sodass ich es formal mache.

Wenn ein Radiobutton (Du solltest wohl lieber Checkboxen nehmen!) geklickt wird, startest Du eine Funktion:

Zunächst die Telefonnummern:

HTML-Quelltext
1: 
2: 
3: 
4: 
<input type="checkbox" name="foo" value="110"/>110
<input type="checkbox" name="foo" value="120"/>120
// und Rosi 
<input type="checkbox" name="foo" value="32168"/>32168


dann ein Script:
HTML-Quelltext
1: 
2: 
3: 
4: 
var formular =  document.forms[<index>];
var checkboxen = formular.elements["foo"];
for (var i=0; i<checkboxen.length; i++)
  formular.elements["daWoEsHinSoll"].value += checkboxen[i].value;


Micha

geschrieben von Tomni am 20.07.2007 - 23:04
erstmal vielen herzlichen dank für die schnelle antwort.

leider hab ich null ahnung mit javascript (ist mein erster code^^). und der funktioniert noch nicht so.

ich hab in zwischen head und body tag beim POPUP folgendes reingeschrieben:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 

<?
</head>
<
script language="JavaScript" type="text/javascript" src="jsfile.js">

function 
datentransfer()
{
var 
formular =  document.forms[telnumber];
var 
checkboxen formular.elements["telnr"];
for (var 
i=0i<checkboxen.lengthi++)
  
formular.elements[1].value += checkboxen[i].value;
</script>
}

<body>
?>




Weiterhin hab ich im POPUP das verändert:

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 

while ($adr = mysql_fetch_array($adressen_query)){
    ?>
      <form name="telnumber" action="javascript:void(0);" method="post" > <tr>
        <td><input type="checkbox" name="telnr" value="<?=$adr['telefonnummer']?>"></td>
        <td><?=$adr['vorname']?></td>
        <td><?=$adr['nachname']?></td>
        <td><?=$adr['firma']?></td>
        <td><?=$adr['telefonnummer']?></td>
         
    </tr>
   
<?php
    
}   
}
?>
</table>            

</table>
<input type="submit" value="Einfügen" onclick="datentransfer();">
 </form>



und in diese feld soll das ausgewählte eingetragen werden:
PHP-Quelltext
1: 
2: 
3: 

<?
<input type="text" name="telefonnummer" size="45" class="eingabegeld">
?>





Danke im Voraus^^

geschrieben von Micha am 20.07.2007 - 23:38
Hi,

HTML-Quelltext
1: 
<script language="JavaScript" type="text/javascript" src="jsfile.js">

Das (language="JavaScript") kann raus und, Du kannst das nicht verbinden. Also inline-Scripte und externe Dateien müssen getrennt eingebunden werden!

HTML-Quelltext
1: 
var formular =  document.forms[telnumber];

Wenn Du den Namen nicht zufällig auch als Variable verwendest, dann muss dieser in Anführungszeichen.

Wenn Du FF nutzt, dann hat dieser eine sehr gute Fehlerkonsole. Nutz diese und schau nach, wo Du Fehler machst.

Micha

geschrieben von René am 21.07.2007 - 07:33
Wenn du das im POPUP zusammen gerechnet hast dann bekommst du das Ergebnis über opener.document.forms['....'].elements['...'].value = ergebnis; in das Elternfenster.

Unter Elternfenster versteht man das Fenster welches das POPUP geöffnet hat.

geschrieben von Tomni am 21.07.2007 - 08:36
HI,

leider stelll ich mich zu dumm an,um das auf die Reihe zu bekommen. Habe jetzt mal ein test Seite auf die schnelle gemacht, um das ganze zu vereinfachen.


Main:
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 

<?
<HTML>
<
HEAD>

<
TITLE>JavaScript Tips Window Interaction</TITLE>

<
SCRIPT LANGUAGE="JavaScript">
var 
myWind ""
function doNew() {
    if (
myWind == "" || myWind.closed || myWind.name == undefined) {
        
myWind window.open("test2.html","subWindow","HEIGHT=200,WIDTH=350")
;
    } else{
        
myWind.focus();
    }
}

</SCRIPT>
</HEAD>

<form name="eingabefeld">
      
        <input name="storage" value="Open Window" onclick="doNew()" type="button">

        <input name="entry" size="25" type="text">

  </form>
?>




POPUP:


PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 

<?
<html>
<
head>
<
title>Title</title>
</
head>

<
script language="JavaScript" type="text/javascript" >

function 
datentransfer(){
var 
formular =  document.forms["telnumber"];
var 
checkboxen formular.elements["foo"];
var 
test '';
with (document.forms['telnumber'])
    for (var 
i=0i<checkboxen.lengthi++)
     
test  += checkboxen[i].value;
  
  
opener.document.forms['eingabefeld'].elements['entry'].value test;
  }
  
</script>

<body onLoad="datentransfer();">
<form name="telnumber">
<input type="checkbox" name="foo" value="110"/>110
<input type="checkbox" name="foo" value="120"/>120
<input type="checkbox" name="foo" value="32168"/>2232168
<input type="submit" value="Einfügen" onclick="datentransfer();">
</form>


</body>
</html>
?>





Fehler meldung im FF:
Zitat
 Fehler: datentransfer is not defined Quelldatei: http://localhost/Aktuelles/Aktuelles/test2.html?
Zeile: 1


Zitat
 Fehler: invalid XML tag syntax
Quelldatei: http://localhost/Aktuelles/Aktuelle....?foo=32168
Zeile: 13, Spalte: 34
Quelltext:
for (var i=0; i<checkboxen.length; i++)


Zitat
 Fehler: datentransfer is not defined
Quelldatei: http://localhost/Aktuelles/Aktuelle....?foo=32168
Zeile: 1


Was die Fehlermeldung bedeutet versteh ich teilweise^^. nur hab ich viel zun wenig kentniss von javascript , um es zu behben.

SORRY dass ich euch so nerve. Will das aber unbedingt hinbekommen dieses Wochende

geschrieben von René am 21.07.2007 - 09:17
Main
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

<script type="text/javascript">
<!--
var myWind = null;

function doNew()
{
	if ((myWind == null) || (myWind.name == undefined) || myWind.closed)
		myWind = window.open('./test2.html','subWindow','height=200,width=350');
	else
		myWind.focus();
}
//-->
</script>

</head>
<body>

<form name="eingabefeld">
	<input name="entry" type="text" size="25" value="">
	<input type="button" value="Open Window" onclick="doNew();">
</form>

</body>
</html>



POPUP
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">

<script type="text/javascript">
<!--
function datentransfer()
{
	var test = '';

	with (document.forms['telnumber'])
	{
		var boxen = elements['foo'];

		for (var i = 0; i < boxen.length; i++)
			if (boxen[i].checked == true)
				test += boxen[i].value;
	}

	opener.document.forms['eingabefeld'].elements['entry'].value = test;
}
//-->
</script>

</head>
<body>

<form name="telnumber">
	<input name="foo" type="checkbox" value="110"/>110<br>
	<input name="foo" type="checkbox" value="120"/>120<br>
	<input name="foo" type="checkbox" value="32168"/>32168<br>
	<input type="button" value="Einfügen" onclick="datentransfer();">
</form>

</body>
</html>

geschrieben von Tomni am 21.07.2007 - 10:11
HI rene,

Vielen Dank!

Leider funktioniert es noch nicht. Es wird nichts übergeben.

FF Fehler Konsole sag:

Zitat
 Fehler: opener.document.forms.eingabefeld has no properties
Quelldatei: http://localhost/Aktuelles/Aktuelles/test2.html
Zeile: 22


liegt das an mir?

hm????????

geschrieben von René am 21.07.2007 - 17:37
... würde sagen ja. Mache mal aus den beiden Code-Blöcken (ohne was zu ändern) zwei eigene Seiten und dann teste.

geschrieben von Tomni am 22.07.2007 - 09:11
danke hat funktioniert. vielen herzlichen dank


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.