Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   (JS|PHP) popup datenübergabe (https://www.delphipraxis.net/51755-javascript%7Cphp-popup-datenuebergabe.html)

mav 18. Aug 2005 10:04


(JS|PHP) popup datenübergabe
 
hi jungs..

ich habe folgendes probelem...

das ist das hauptfenster, hier sollten daten eingefüllt werden
Delphi-Quellcode:
...
for ($i=0;$i<31;$i++) {
echo "
<form name=\"form_$i\" action=\"#\">
<tr>
    <td>$i</td>
   <td>
   <input type=\"text\" name=\"amount_$i\" size=\"10\">
   </td>
    <td>
   <input type=\"text\" name=\"cardname_$i\" size=\"80\">
   <input type=\"hidden\" name=\"card_id_$i\" size=\"80\">
   </td>
    <td><a href=\"#\" onClick=\"popup1=window.open('add.php?id=$i','test','scrollbars=yes,width=550,height=550')\">add</a></td>
  </tr>
  <tr><td></td><td></td><td></td>
</tr>
</form>";
}
...
übergeben sollte es dieses fenster

Delphi-Quellcode:
<script language="JavaScript">
function set_card(x;y;z)
{
opener.document.form_z.cardname_z.value = x;
opener.document.form_z.card_id_z.value = y;
self_close();
</script>
...
<a href=\"javascript:set_card('$data[m_cardname];$data[m_id];$id2')\">$data[m_cardname]</a>
$id2 ist gleich der $id ;)

nun zu meinem problem.. es funktioniert nicht.. es werden dem hauptfenster keine daten übertragen.. kann mir jemand helfen?

faux 18. Aug 2005 10:51

Re: (JS|PHP) popup datenübergabe
 
Könnte das Problem sein, dass du im 2. Fenster nicht einfach nur $id2 sondern $_GET['id2'] schreiben müsstest?

alcaeus 18. Aug 2005 10:56

Re: (JS|PHP) popup datenübergabe
 
Moin mav,

meinst du hier:
Code:
opener.document.form_z.cardname_z.value = x;
wirklich z oder den Wert in der Variable z? In zweiterem Fall musst du so arbeiten:
Code:
eval("opener.document.form_"+z+".cardname_"+z+".value = x;");
So wird z eingesetzt, und der Code dann ausgefuehrt, also wenn z 1 ist, dann wird das ausgefuehrt:
Code:
opener.document.form_1.cardname_1.value = x;
Greetz
alcaeus

mav 18. Aug 2005 15:28

Re: (JS|PHP) popup datenübergabe
 
danke für deine hilfe.. stimmt diesen fehler habe ich übersehen..
habe es koorigiert.. jedoch überträgt das ganze immer noch keine daten :(

faux 18. Aug 2005 18:50

Re: (JS|PHP) popup datenübergabe
 
Nochmal:
Wenn du PHP > 4.3 hast, dann musst du $_GET['id2'] schreiben....

noch_ein_hannes 18. Aug 2005 19:02

Re: (JS|PHP) popup datenübergabe
 
Hi,

meintest Du vielleicht statt:
<a href=\"javascript:set_card('$data[m_cardname];$data[m_id];$id2')\">$data[m_cardname]</a>

das hier?
<a href=\"javascript:set_card('<?= $data[m_cardname] ?>;<?= $data[m_id] ?>;<?= $id2 ?>')\"><?= $data[m_cardname] ?></a>


Ausserdem kenne ich als Trenner für Funktionsparameter nur das Komma - lasse mich aber gern eines besseren belehren ...

Also statt: "set_card(x;y;z)" dann eher: "set_card(x,y,z)"

Grüsse,
Hannes

faux 18. Aug 2005 20:31

Re: (JS|PHP) popup datenübergabe
 
Zitat:

Zitat von noch_ein_hannes
meintest Du vielleicht statt:
<a href=\"javascript:set_card('$data[m_cardname];$data[m_id];$id2')\">$data[m_cardname]</a>

das hier?
<a href=\"javascript:set_card('<?= $data[m_cardname] ?>;<?= $data[m_id] ?>;<?= $id2 ?>')\"><?= $data[m_cardname] ?></a>

Nein meint er IMHO nicht, da die Zeile bereits PHP ist (er hat ja auch \" anstatt von " verwendet). Er hatt statt den PHP-Tags nur ... eine Zeile vorher geschrieben.

Grüße
Faux

alcaeus 18. Aug 2005 20:35

Re: (JS|PHP) popup datenübergabe
 
Zitat:

Zitat von faux
Wenn du PHP > 4.3 hast, dann musst du $_GET['id2'] schreiben....

Muessen? $HTTP_GET_VARS[] muesste doch auch noch existieren, das gibts AFAIR nur in PHP5 erst per php.ini-Einstellung. Falls du das mit register_globals meinst, ich denke man kann davon ausgehen, dass jeder PHP-Entwickler, der sich ein bisschen um Sicherheit kuemmert, register_globals ausmacht ;)

Aber das mit den Strichpunkten in JS kommt mir auch spanisch vor, AFAIK kannn man wirklich nur den Beistrich als Trennzeichen fuer Parameter verwenden.

Greetz
alcaeus

mav 19. Aug 2005 12:53

Re: (JS|PHP) popup datenübergabe
 
also das mit dem semikolon ist eigendlich egal.. soviel ich weiss.. ;)

zu der frage mit der zeile.. die zeile steht im echo "...";

Delphi-Freak 19. Aug 2005 14:34

Re: (JS|PHP) popup datenübergabe
 
Also mich wundert der Strichpunkt genauso. Probiers doch einmal mit einem Beistrich.
Zweitens gehört die JavaScript-Funktion noch geschlossen ("}").
Drittens ( :wink: ) solltest du die einzelnen Parameter unter einzelne Anführungszeichen setzen, nicht nur unter eines:
Code:
echo "<a href=\"javascript:set_card('$data[m_cardname]','$data[m_id]','$id2')\">$data[m_cardname]</a>";
Das ist mir spontan aufgefallen. Probiers einmal...

LG, ich

DGL-luke 19. Aug 2005 15:19

Re: (JS|PHP) popup datenübergabe
 
Firefox hat übrigens ne ganz tolle JS-Konsole die einem bei Syntaxfehlern immer hilft. :-D (Extras->JavaScript-Konsole)

faux 20. Aug 2005 13:51

Re: (JS|PHP) popup datenübergabe
 
Zitat:

Zitat von DGL-luke
Firefox hat übrigens ne ganz tolle JS-Konsole die einem bei Syntaxfehlern immer hilft. :-D (Extras->JavaScript-Konsole)

Wow, nicht schlecht. Das hätte mir schon öfters behilflich sein können....
In der DP kommen beimir lauter fehler.. lol

mav 21. Aug 2005 10:01

Re: (JS|PHP) popup datenübergabe
 
Liste der Anhänge anzeigen (Anzahl: 2)
ohh.. die konsole ist der hammer.. jedoch hilft mir die fehler aussage nicht weiter

der erste fehler tritt auch, wenn ich den popup öffne über das hauptfenster

die anderen 2 erscheinen beim suchen in der popup und anschliessend beim ausführen des übertragen der variablen.

im anhang könnte, wer interesse hat, das popup anschauen..

vielen danke für euere hilfe :)

S2B 21. Aug 2005 10:32

Re: (JS|PHP) popup datenübergabe
 
Du hast nicht konsequent das gemacht, was alcaeus vorgeschlagen hat:
bei dir im Quellcode steht das:
Code:
opener.document.form_"+z+".cardname_"+z+".value = x;
aber bei alcaeus steht das:
Code:
eval("opener.document.form_"+z+".cardname_"+z+".value = x;");
meine Lösung für dieses Problem wäre aber so etwas in der Art (müsste normalerweise gehen):
Code:
opener.document.forms["form_"+z].elements["cardname_"+z].value = x;
Das müsstest du dann noch entsprechend auf die zweite Zeile anpassen.

btw. hat dein Dokument noch ein paar andere Fehler (nicht JS), z.B.:
Code:
//3 frame style
Kommentare in CSS gehen eigentlich so:
Code:
/* 3 frame style */
außerdem wird CSS nicht wie JS so eingeschlossen:
Code:
<!--
deinCode
//-->
sondern so:
Code:
<!--
deinCode
-->
Zum Schluss noch: Ich würde an deiner Stelle den HTML-Code aus dem echo nehmen und direkt ins Dokument schreiben, Variablen kannst du dann darin per
Code:
<?php echo $deine_var ?>
einfügen. So wird der Code lesbarer und du hast nicht immer diese nervenden Escapes im Code. :)

mav 21. Aug 2005 10:45

Re: (JS|PHP) popup datenübergabe
 
mit ein wenig gebastel und eueren super hilf habe ich es doch noch geschaft.. vielen dank :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz