URL Parameter aus Javascript-Funktionsparameter
Christian Zumbrunnen
- javascript
Die Detailseite einer Liste soll in einem neuen Fenster geöffnet werden.
Dabei wird beim Datensatz in der Listenansicht der Link als JavaScript Funktion mit einem Parameter, der Id ausgegeben.
Das sieht etwa so aus und scheint ganz ordentlich zu funktionieren:
<a href="javascript:handydetails(<?php echo urlencode($rchandys->Fields('nr')) ?>);">
Die Funktion soll nun ein simples window.open() ausführen, etwa so:
function handydetails(Id)
{
window.open("handydetails.php?Id=Id", "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
}
Wobei die Id natürlich der der Funktion übergebene Parameter sein soll.
Irgendwie kriege ich das nicht so ganz hin, hab wohl ein Problem mit der String-Konkatenation.
Christian,
Dabei wird beim Datensatz in der Listenansicht der Link als JavaScript Funktion mit einem Parameter, der Id ausgegeben.
Das sieht etwa so aus und scheint ganz ordentlich zu funktionieren:
Glaubst du. Nutzer ohne JavaScript sind da anderer Meinung.
Gunnar
Glaubst du. Nutzer ohne JavaScript sind da anderer Meinung.
Gunnar
Ich weiss schon. Zuerst wollte ich auch völlig ohne JavaScript auskommen. Das Problem ist aber, dass wenn ich eine Auswahl getroffen habe (siehe www.humbel.net/handys/) und dann eine Detailseite anschaue, ich beim Zurückkommen, die Auswahl nicht mehr habe.
Vielleicht gäbe es auch eine elegantere Lösung?
Hi,
<a href="javascript:handydetails(<?php echo urlencode($rchandys->Fields('nr')) ?>);">
wenn Du kein serverseitiges Problem hast, dann poste doch bitte den Code, der beim Browser ankommt.
window.open("handydetails.php?Id=Id", "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
Du übergibst hier ausschließlich Zeichenketten. Ist Dir die Grundfunktion von Quotes nicht klar?
freundliche Grüße
Ingo
Hi,
<a href="javascript:handydetails(<?php echo urlencode($rchandys->Fields('nr')) ?>);">
wenn Du kein serverseitiges Problem hast, dann poste doch bitte den Code, der beim Browser ankommt.window.open("handydetails.php?Id=Id", "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
Du übergibst hier ausschließlich Zeichenketten. Ist Dir die Grundfunktion von Quotes nicht klar?freundliche Grüße
Ingo
Ich will ja auch nur Zeichenketten übergeben, lediglich ein Wert der Zeichenkette ist ein Variabelnwert, nämlich derjenige, der an die Funktion übergeben wurde.
Hier noch einmal die Idee:
...
<td><a href="javascript:handydetails(8);">NOKIA</a></td>
<td><a href="javascript:handydetails(9);">NOKIA</a></td>
...
was aus php-Code resultiert, der etwa so aussieht:
...
<td><a href="javascript:handydetails(<?php echo urlencode($rchandys->Fields('nr')) ?>);"><?php echo $rchandys->Fields('marke'); ?></a></td>
Der Parameter, welcher ich hier an die JavaScript Funktion zum Öffnen einer Seite in einem neuen Fenster übergebe, ist die ID, welche als URL-Parameter der Datei, die mit window.open geöffnet wird übergeben werden muss.
Die Seit muss also lediglich ein einziger Parameter bekommen:
"handydetails.php?Id=[Parameter, der schon beim Funktionsaufruf übergeben wurde.]"
Das Ganze muss also irgendwie so zusammengesetzt werden können:
function handydetails(Id)
{
window.open("handydetails.php?Id=" + ID + ", "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
}
So funktioniert ja aber eben nicht...
Ich habe es auch schon so:
{
window.open("handydetails.php?Id=" + ID + ", "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786"");
}
und auf verschiedene andere Arten versucht aber scheinbar etwas banales dabei übersehen oder falsch gemacht.
Es geht eigentlich nur darum, dass wenn ich von der Detailseite zurückkomme, ich noch die ursprüngliche Auswahl habe.
Da dies bei history.back nicht funktioniert, dachte ich es wäre einfache, die Detailseite in einem neuen Fenster zu öffnen.
Wenn ich dieses schliesse, bin ich wieder bei meiner ursprünglichen Auswahl.
Das ganze kann man unter www.humbel.net/handys/ schon mal anschauen.
Hi,
Hi,
bitte keine Fullquotes.
Ich will ja auch nur Zeichenketten übergeben, lediglich ein Wert der Zeichenkette ist ein Variabelnwert
Ich wiederhole mich ungern, aber:
Ist Dir die Grundfunktion von Quotes nicht klar?
function handydetails(Id)
{
window.open("handydetails.php?Id=" + ID
Schon besser, aber Du hängst hier nicht den Funktionsparameter an, sondern eine nicht deklarierte Variable.
freundliche Grüße
Ingo
O.k. das obige Beispiel war falsch, da ID wirklich nicht definiert ist, sondern Id.
Wahrscheinlich ist mir die Grundfunktion von Quotes nicht klar aber schliesslich läuft es nun und zwar so:
window.open("handydetails.php?Id=" + Id, "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
bzw. genauer, damit das Fenster auch dann gesehen wird weil es den Fokus erhält, wenn es vorher geöffnet aber nicht mehr geschlossen wurde.
{
handydetailsfenster = window.open("handydetails.php?Id=" + Id, "Handydetails", "location=no, directories=no, menubar=no, scrollbars=yes, toolbar=no, status=no, width=786");
handydetailsfenster.focus();
}