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> </td>
<td><input type="text" name="suche" size="45" /></td>
<input type="hidden" name="FUNC" value="1">
<td> </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=0; i<checkboxen.length; i++)
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=0; i<checkboxen.length; i++)
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:
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:
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 |
|