echo window.open function
Steffi
- php
Hallo,
habe über Google und in den verschiedensten Foren bereits nachgesehen, aber keine Lösung hilft weiter...
Das will ich tun:
echo "<center><a href=# onclick="openWindow("/interaktiv/smiley.php", "_blank", "400", "300";)">...</a>";
und ich bekomme immer einen Javascript Syntaxfehler!
Habe bereits alle "Arten" von Hochkommas ausprobiert, will trotzdem nicht.
Gibt´s Hilfe?
Danke,
Steffi
hi,
Das will ich tun:
echo "<center><a href=# onclick="openWindow("/interaktiv/smiley.php", "_blank", "400", "300";)">...</a>";und ich bekomme immer einen Javascript Syntaxfehler!
also sollte dir klar sein, dass PHP hier zunächst mal uninteressant ist, und du dir den code anschauen solltest, der letztendlich beim client ankommt.
hast du dort eine funktion openWindow?
und, was du dir bitte für die zuklunft merkst, eine der wichtigsten angaben, wenn du ein problem postest: wie lautet die fehlermeldung?
gruß,
wahsaga
natürlich habe ich die Funktion...
Die funktioniert auch prächtig in allen meinen Seiten. Nur wenn ich die Funktion nicht über HTML, sondern über PHP (mit echo "...) aufrufen möchte, dann kracht sie, obwohl ich vor alle Hochkommas den "" setze. Egal ob ich " oder ' für den String in den Funktions-Übergaben benutze bekomme ich eine Fehlermeldung.
Fehlermeldung : (ich weiss, dass ich sie posten muss, gibt mir aber nichts anderes aus, als was ich vorher geschrieben hatte)
Zeile: 85;
Zeichen: 1;
Fehler: Syntaxfehler;
Zeile 85 ist natürlich die mit dem vorhin "geposteteten Code":
echo "<a href=# onclick="openWindow('/interaktiv/smiley.php', '_blank', '400', '300';)">Blah</a>";
hi,
Zeile 85 ist natürlich die mit dem vorhin "geposteteten Code":
echo "<a href=# onclick="openWindow('/interaktiv/smiley.php', '_blank', '400', '300';)">Blah</a>";
bitte zeig dich nicht so merkbefreit!
ich bat dich gerade schon, das ergebnis zu betrachten, welches beim client ankommt.
gruß,
wahsaga
was ist "merkbefreit"?
beim Client kommt genau das an:
<a href=# onclick="openWindow('/interaktiv/smiley.php', '_blank', '400', '300';)">...</a>
hi,
was ist "merkbefreit"?
http://de.wikipedia.org/wiki/Merkbefreiung ;-)
beim Client kommt genau das an:
<a href=# onclick="openWindow('/interaktiv/smiley.php', '_blank', '400', '300';)">...</a>
und was sollen die maskierten hochkommata da?
gruß,
wahsaga
Wie gesagt, das war nur ein weiterer Test (ok, ich habe den "falschen" Output gepostet ;-(
Das passiert bei so viel "Rumtesterei".
Guck in meinem ersten Posting, dort steht´s richtig drin...
Grüße,
Steffi
hallo, kann totaler Unsinn sein, aber vielleicht ja eine Hilfe?
1. das # in Klammern setzen, <a href="#"
2. Statt "openWindow" "window.open"
Gruß, Ingo
Danke für die Hilfe...
das # hatte ich schon in Klammern...
"openWindow" heißt meine Funktion in der dann "window.open" steht...
(Wie gesagt, die Fkt. funktioniert über HTML-Aufruf perfekt, nur nicht über den PHP echo Aufruf)
hatte ich alles schon durch...
hi,
Nur wenn ich die Funktion nicht über HTML, sondern über PHP (mit echo "...) aufrufen möchte, dann kracht sie, obwohl ich vor alle Hochkommas den "" setze. Egal ob ich " oder ' für den String in den Funktions-Übergaben benutze bekomme ich eine Fehlermeldung.
sag mal, ist dir der sinn des maskierens überhaupt bewusst?
wenn du " benutzt, um den string in PHP einzufassen, musst du die " innerhalb des strings maskieren, die ' aber nicht.
echo "<a href=# onclick="openWindow('/interaktiv/smiley.php', '_blank', '400', '300';)">Blah</a>";
deine version müsste schon vor der ausführung des JS einen fehler geben, nämlich schon serverseitig vom PHP-parser.
echo "<a href=# onclick="openWindow(...
^hier beginnt der string
^hier wird er beendet
Fehlermeldung : (ich weiss, dass ich sie posten muss, gibt mir aber nichts anderes aus, als was ich vorher geschrieben hatte)
Zeile: 85;
Zeichen: 1;
Fehler: Syntaxfehler;
schau dir bitte mal http://glasgoogle.de/ an.
gruß,
wahsaga
puts "Hallo " + gets.chomp + "."
?> wahsaga
=> Hallo wahsaga.
schau dir bitte mal http://glasgoogle.de/ an.
Hm... Die Seite ist aber mittlerweile mächtig überholt.
Einen schönen Freitag noch.
Gruß, Ashura
Guck mal in meinem ersten Posting:
da hatte ich im Funktionsaufruf, was Du meinst:
"
Egal, ob ich die in die Fkt. zu übergebenden Strings mit " oder mit ' nutze, sie funktionieren nicht...
puts "Hallo " + gets.chomp + "."
?> Steffi
=> Hallo Steffi.
Das will ich tun:
echo "<center><a href=# onclick="openWindow("/interaktiv/smiley.php", "_blank", "400", "300";)">...</a>";und ich bekomme immer einen Javascript Syntaxfehler!
<?php
echo '<a href="#" onclick="openWindow(\'/interaktiv/smiley.ph\',\'_blank\',\'width=400,height=300\'">...</a>';
?>
Schau dir am Besten einmal an, welche Parameter window.open() verarbeiten kann.
Habe bereits alle "Arten" von Hochkommas ausprobiert, will trotzdem nicht.
Bei echo gibt es doch nur zwei.
Einen schönen Freitag noch.
Gruß, Ashura
Wie schon gesagt:
Mit der Funktioan stimmt absolut alles. Ich benutze diese bereits sehr oft per HTML-Aufruf, mehrmals aus verschiedenen Seiten (eben immer mit den verschiendenen Variablen für die jeweils benötigte Größe des Windows).
Mein Problem liegt absolut nur im Aufruf per PHP mit "echo". Da haut´s einfach mit der Syntax nicht hin (auch wenn ich absolut den gleichen Aufruf wie über HTML benutze, lediglich mit den "escapes " vor den Hochkommas...
echo $begrüßung;
Habe bereits alle "Arten" von Hochkommas ausprobiert, will trotzdem nicht.
Mit Logik kommt man oftmals weiter als mit probieren :-)
Zuerst solltest du die gewünschte Ausgabe so hinschreiben, wie das letzte Glied in der Kette das haben möchte:
Hallo Welt, ich bin's! <-- so kommt es auf den Bildschirm
Dann schaust du, ob der sich darum befindliche Mechanismus bestimmte Maskierungen benötigt:
<tag eventhandler="functionname('Hallo Welt, ich bin's')"> <-- so steht's im HTML
Wieder einen Schritt weiter betrachtest du die Zeichen so wie sie dastehen. Das das ' eine Maskierung ist, interessiert nicht mehr. Es sind jetzt nur noch die zwei Zeichen \ und ', die zufälligerweise hintereinander stehen. Du gehst Zeichen für Zeichen den String entlang, und aus dem ' vor Hallo wird ein ' und aus dem \ ein \ und aus dem dahinter kommenden ' ein ' usw.:
echo '<tag eventhandler="functionname('Hallo Welt, ich bin\'s')">'; <-- im PHP
Ist doch gar nicht so schwer, oder? :-)
echo "$verabschiedung $name";
Danke dedlfix,
Deine war die einzige vernünftige Antwort hier!
Hier nochmals die Lösung, ist wirklich gar nicht so schwer...
HTML: (das hat immer funktioniert)
<center><a href="#" onclick="openWindow('/interaktiv/smiley.php', 'smiley', '600', '580', 'center', 'middle', false, 'scroll');">Smilies</a><font color=red> wird noch bearbeitet</font></center>
PHP: (die ultimative Lösung)
echo '<center><a href="#" onclick="openWindow('/interaktiv/smiley.php', 'smiley', '600', '580', 'center', 'middle', false, 'scroll');">Smilies</a><font color=red> wird noch bearbeitet</font></center>';
Allerdings muss ich bemerken, dass dann 90% aller PHP-Programmierer die Anführungszeichen falsch setzen, z.B. nach "echo"
Also:
Danke nochmals,
Steffi
echo $begrüßung;
Allerdings muss ich bemerken, dass dann 90% aller PHP-Programmierer die Anführungszeichen falsch setzen, z.B. nach "echo"
Das sehe ich ähnlich.
Also:
- falsch: echo "...";
- richtig: echo '...';
Das (richtig/falsch) ist mir aber zu pauschal.
Ich nutze bevorzugt die ''. Die "" kommen bei mir dann zur Anwendung, wenn ich deren Funktionalität der Variablenauflösung oder bestimmter Zeichen (\n) benötige, oder wenn '-"-Verschachtelungen einfacher aufzulösen sind. Wobei ich bei letzterem auch regen Gebrauch von der Möglichkeit mache, HTML-Attribute wahlweise mit " oder ' begrenzen zu können.
echo "$verabschiedung $name";
hi,
Deine war die einzige vernünftige Antwort hier!
das siehst du vermutlich nur so, weil du recht wenig ahnung hast, was du da eigentlich tust.
gruß,
wahsaga
Wie bist Du denn drauf?
Du warst ja nicht derjenige, der mir meine Frage richtig beantworten konnte...
Zu Deiner Info:
Ich bin professionell angestellter Webprogrammierer seit 7 Jahren (und bin´s immer noch und bin ständig ausgebucht, also kann´s ja nicht allzu schlecht sein).
Allerdings programmiere ich ASP und habe nun mein erstes Projekt mit PHP.
Mein Eindruck dazu nach einer Woche:
PHP ist richtig klasse, damit kann man wirklich was anfangen. Allerdings ist die Syntax gebenüber VBScript (damit programmiere ich die Active Server Pages) richtig "sch...limm".
Da wird es doch wohl noch erlaubt sein bei einem Syntax-Problem ´mal nachzufragen, wenn man gerade eine neue "Sprache" lernt, ohne gleich als "Du hast wenig Ahnung" hingestellt zu werden.
Ich mag solche Einträge (wie meinen) eigentlich gar nicht. Aber Du hast angefangen...
Wenigstens habe ich mich nach der Lösung nochmal gemeldet und sie hier gepostet, was man auch nicht von allen sagen kann (und meiner Meinung nach das das mindeste was man tun kann, wenn einem schon geholfen wurde).
Eigentlich find (fand?) ich das SELFHTML Forum ganz gut, weil man hier bisher mit Respekt behandelt wurde, was hoffentlich auch wieder so sein wird!
Ein enttäuschter Mensch
Hallo Steffi,
PHP: (die ultimative Lösung)
naja, als "ultimative Lösung" würde ich das jetzt nicht bezeichnen (wenn du echo "..."; verwendet hättest, müsstest du nicht so viele ' maskieren, sondern nur die "), aber gut :-)
- falsch: echo "...";
- richtig: echo '...';
Unsinn. Beide Varianten sind richtig (siehe Handbuch) - sie verhalten sich lediglich etwas anders.
Grüße aus Nürnberg
Tobias