Parameter von PHP an eine JavaScript Funktion übergeben
Aldo
- javascript
0 Struppi0 Philipp Hasenfratz0 Aldo
0 Tobias K.
Hallo, ich lese aus einer db daten aus und will diese an eine php datei weitergeben, die ich in ein js popup window laden will. Ich habe aber ein Problem mit der Parameterübergabe. So sieht der Code aus:
<?php
print "<html>";
print "<head>";
print "<title>Remove / Update</title>";
print "<script language="JavaScript" type="text/javascript">";
print "function info($data[0],$data[1]) {";
print "del=window.open("rem_pop.php?cd_id=$data[0]&name=$data[1]", "popup", "width=500,height=350,resizable=no, scrollbars=no,top=135,left=135");";
print "}";
print "</script>";
print "</head>";
print "<body>";
// php code, u.A. mysql Anfrage an DB
// ....
// Aufruf der js Funktion
print '<td><a href=inf.php target="_blank" onClick="info($data[0],$data[1]); return false;">Remove</a></td>';
print "</body>";
print "</html>";
Wie kann ich $data[0] und $data[1] korrekt an die js Funktion übergeben?
Vielen Dank im Voraus!!!
Gruss, Aldo
Hallo, ich lese aus einer db daten aus und will diese an eine php datei weitergeben, die ich in ein js popup window laden will. Ich habe aber ein Problem mit der Parameterübergabe. So sieht der Code aus:
<?php
print "<html>";
print "<head>";
print "<title>Remove / Update</title>";
print "<script language="JavaScript" type="text/javascript">";
print "function info($data[0],$data[1]) {";
print "del=window.open("rem_pop.php?cd_id=$data[0]&name=$data[1]", "popup", "width=500,height=350,resizable=no, scrollbars=no,top=135,left=135");";
print "}";print "</script>";
print "</head>";
print "<body>";// php code, u.A. mysql Anfrage an DB
// ....// Aufruf der js Funktion
print '<td><a href=inf.php target="_blank" onClick="info($data[0],$data[1]); return false;">Remove</a></td>';
print "</body>";
print "</html>";Wie kann ich $data[0] und $data[1] korrekt an die js Funktion übergeben?
Das JS Skript:
print "function info(url) {";
print "del=window.open(url, "popup", "width=500,height=350,resizable=no, scrollbars=no,top=135,left=135");";
Der Link:
print
'<td><a href="rem_pop.php?cd_id=$data[0]&name=$data[1]"
target="_blank"
onClick="info(this.href);return false;">Remove</a></td>';
Hat den vorteil das das ganze auch ohne JS funktioniert.
Struppi.
Halihallo Aldo
print "function info($data[0],$data[1]) {";
^^^^^^^^^^^^^^^^^ function erwartet Variablen, keine Konstanten
=> function info( var1, var2 ) {...}
print '<td><a href=inf.php target="_blank" onClick="info($data[0],$data[1]); return false;">Remove</a></td>';
print "...", nicht ''. Siehe Output des Scripts!
Wie kann ich $data[0] und $data[1] korrekt an die js Funktion übergeben?
Evtl. müssen die Daten in Anführungszeichen stehen. Sieh dir doch mal deinen Code an!
---
Probleme haben hier alle, die eine Frage stellen. Wichtiger wäre es eine Fehlermeldung
zu posten, dass man _genau_ weiss, wo dein Problem ist. Sieh dir deinen Quellcode an
und sieh nach, ob der von PHP generierte Output auch _wirklich_ JS/HTML tauglich ist.
Viele Grüsse
Philipp
Ciao Philipp,
OK, und wo soll ich die Wertzuweisung an die Variable machen, z.B.
var1 = $data[0];
var2 = $data[1];
zwischen <script> und function info()? geht das überhaupt?
Danke, Aldo
Halihallo Aldo
OK, und wo soll ich die Wertzuweisung an die Variable machen, z.B.
var1 = $data[0];
var2 = $data[1];
zwischen <script> und function info()? geht das überhaupt?
Überleg dir, was du tun möchtest! - Du willst irgendwo über
onclick="info($data[0],$data[1]); return false;">Remove</a>
die Funktion info aufrufen und _da_ übergibst du der Funktion die Werte $data[0] und
$data[1]. Sonst nirgens, die funktion interessiert sich für $data[0 und 1] nicht die
Bohne, da sie diese Werte als _Parameter_ erhält und diese Parameter über gibst du wie
gehabt mit print "<a ... onclick="info('$data[0]', '$data[1]')"> ...".
Viele Grüsse
Philipp
ok, d.h. ich muss $data[0,1] innerhalb der Funktion ändern. So?
print "<script language="JavaScript" type="text/javascript">";
function info() {
var x = "$data[0]";
var y = "$data[1]";
print "del=window.open("rem_pop.php?cd_id=x&name=y", "popup", "width=500,height=350,resizable=no, scrollbars=no,top=135,left=135"); ";
}
print "</script>";
...
print "<td><a href=inf.php target='_blank' onClick='info('$data[0]', '$data[1]'); return false;'>Remove</a></td>";
Es gibt irgendein Problem mit der Zeile
var x = "$data[0]";
-->Parse error: parse error, unexpected T_VAR
ok, d.h. ich muss $data[0,1] innerhalb der Funktion ändern. So?
print "<script language="JavaScript" type="text/javascript">";
function info() {
var x = "$data[0]";
var y = "$data[1]";
print "del=window.open("rem_pop.php?cd_id=x&name=y", "popup", "width=500,height=350,resizable=no, scrollbars=no,top=135,left=135"); ";
}print "</script>";
...
print "<td><a href=inf.php target='_blank' onClick='info('$data[0]', '$data[1]'); return false;'>Remove</a></td>";
Es gibt irgendein Problem mit der Zeile
Warum machst du es nicht so, wie ich es dir empfohlen hab, dann funktioniert es auch ohne JS. Du verwendest schließlich die Variabeln x und y nicht weiter in JS, sondern als nur als Anhang in einer URL und da kann sie doch auch stehen bleiben, oder?
Struppi.
Jetzt gehts, vielen Dank an alle!!!
Hab grad noch ne Frage:
Datei x: Anzeige der Zeilen mit Links für Update und Remove, die popup erzeugen
Datei y: popup
Datei z: wird beim klicken auf ok button von y ausgeführt
ich möchte, dass y bei klicken von ok geschlossen wird und x sich refresht. so wie ich's bis jetzt habe wird z in y ausgeführt, y bleibt also sichtbar und enthält x
In z habe ich folgenden Aufruf zum refreshen:
<?php if ($update) { ?>
<meta http-equiv="Refresh" content="0; url=x.php?cd_id='<?php print $cd_id; ?>'&name='<?php print $name; ?>'">
<?php } ?>
dadurch öffnet sich x aber eben in y. ich weiss nicht, wie der befehl lauten muss, um y zu schliessen, und ob ich ihn hier platzieren muss?
Danke, Aldo
dadurch öffnet sich x aber eben in y. ich weiss nicht, wie der befehl lauten muss, um y zu schliessen, und ob ich ihn hier platzieren muss?
Wenn du das mit Javascript machen willst:
Fenster öffnen und schliessen: http://www.netzwelt.com/selfhtml/javascript/objekte/window.htm
Fenster refreshen und laden:
http://www.netzwelt.com/selfhtml/javascript/objekte/location.htm
Strupi.
Halihallo Aldo
ok, d.h. ich muss $data[0,1] innerhalb der Funktion ändern. So?
Nein, nein, nein, die Funktion _bekommt_ die Daten von extern, dazu sind Funktionen
ja gedacht: Sie bekommen von extern definierte Werte und verarbeiten diese. Die
Daten werden über onclick="info('$data[0]', '$data[1]');" gegeben und die Funktion
kann sie über die Parameter (function info(var1, var2); hier sind die Parameter var1 und
var 2 ) verarbeiten.
function info() {
function info(data1, data2) {...}
wobei data1 und data2 JavaScript-Variablen sind.
var x = "$data[0]";
var y = "$data[1]";
Nein, du kannst im JS-Code dann über data1 und data2 auf diese Werte zugreifen.
print "<td><a href=inf.php target='_blank' onClick='info('$data[0]', '$data[1]'); return false;'>Remove</a></td>";
Hier und _nur_ hier wird auf $data[...] zugegriffen, alles andere sind JS-Variablen.
-->Parse error: parse error, unexpected T_VAR
dass print " ... var x = "$data[0]"; ... " einen Fehler ergeben muss, ist dir klar?
wenn du '"' als Quotes in PHP verwendest, düfen diese _nicht_ im String vorkommen, oder
du musst sie _kodieren_ => print " ... "$data[0]" ..."
und nocheinmal den Tipp: Sieh dir den generierten JavaScript und HTML-Code an, dann
_siehst_ du diese Fehler.
Viele Grüsse
Philipp
PS: Befolge den Ratschlag von Struppi!
Hallo Aldo,
print "function info($data[0],$data[1]) {";
übergib der funktion info() ganz normale Parameter (wie das geht steht in selfhtml)
print "del=window.open("rem_pop.php?cd_id=$data[0]&name=$data[1]",[...]);";
hier hängst du die Parameter die du im Funktionsaufruf übergeben hast and cd_id bzw. name
print '<td><a href=inf.php target="_blank" onClick="info($data[0],$data[1]); [...]';
hier schreibst du die Variablen $data[0] bzw. $data[1] rein, wie du es ja jetzt schon machst, allerdings musst kannst du - wenn du einfache Anführungszeichen verwendest - die Variablen nicht einfach reinschreiben, du musst den Sting "unterbrechen" z.B. so: echo 'blabla'.$variable.'blabla';
alternativ kannst du natürlich die Daten mit php auch gleich in dein window.open("rem_pop.php?cd_id=$data[0]...",...) schreiben.
Grüße aus Nürnberg
Tobias