Javascript in PhP Schleife:

Katzehuhn

Erfahrenes Mitglied
Folgendes Problem:
Ich hab hier 2 JS-Scripte in einer PHP-Whileschleife die nicht ganz funktionieren

$senden = '<a href="mess.php?w='.$row->name.'" onclick="return !window.open(this.href, \'Popup1\', \'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=300, left=22, top=22\');"> '.$row->name.' </a> <br>';
Um den Link in einem Pop Up erscheinen zu lassen.

echo '<a href="index.php?site=map3&x='.$xachse.'&y='.$yachse.'" onMouseOver="textAndPic(this, \''.$senden.'\');"><img src="bilder/max.GIF" width="60" height="60" border="0"></a>';

Wenn man mit der Maus über das Feld fährt werden die Links in einer Ebene angezeigt, leider schaff ich es einfach nicht diese 2 zu kombinieren ( ist das überhaupt möglich? )

Bitte um hilfe;) danke!
 
Du hast da 2 Linkziele....ein Link kann aber nur ein Ziel haben.
Wenn du dich für eines entscheiden könntest, wäre es möglich, alle Funktionsaufrufe in einem Link unterzubringen.
 
em, es geht schon...
wenn ich das Teil nicht als Pop up mit 500x300 mach geht es ja(also ohne JS aber ohne Pop up is das ziemlich zach), aber ich schaffs einfach net die ' " \' \" in richtiger From hinzuschreiben.
Weil ich Kombinier Php mit Js was dann wieder in ner Kombination von Js mit Php auftauchen soll^^
 
Ich kann da auf Anhieb keinen Syntaxfehler erkennen.
Vielleicht postest du mal das, was PHP ausgibt. Eine etwaige JS-Fehlermeldung wäre auch nicht schlecht.
 
In $senden hast Du Hochkomma, die Du für PHP maskiert hast (\').
$senden fügst Du allerdings in einen String an einer Stelle, wo $senden im JavaScript in Hochkomma stehen wird. Da Die maskierten Hochkomma aus $senden an der Stelle, wo sie eingefügt werden, "echte" Hochkomma darstellen, beendest Du den String, den Du Deiner Funktion textAndPic übergeben willst vorzeitig mitten in $senden.
Wenn JavaScript auch mit maskierten Hochkomma arbeiten kann, müsstest Du dafür sorgen, dass in $senden nicht nur die Hochkomma beim definieren des Strings maskiert werden, sondern maskierte Hochkomma drin stehen, also musst Du noch einen maskierten Backslash vor jedes maskierte Hochkomma in $senden setzen (\\\').

Gruß hpvw

PS: Fischers Fritze fischt frische Fische, frische Fische fischt Fischers Fritze.
 
Mit den \\\ funktioniert das leider nicht, im $senden schaut nun so aus, die Funktion bleibt gleich
Code:
 $senden = "$senden <a href=\'mess.php?w=".$row->name."\' onclick=\\'return !window.open(this.href, \'Popup1\', \\'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=506, height=478, left=22, top=22\\');\\'> $row->name</a> <br\>";

Quellcode:
Code:
  <a href="mess.php?w=Admin" 
 onclick="return !window.open
 (this.href, " popup1="" 'toolbar="no," location="no," directories="no," status="no," menubar="no," scrollbars="yes," resizable="no," width="506," height="478," left="22," top="22');'"> 
 Admin
 </a>
Er weis anscheinend nicht wie er mit dem JS Teil umgehen soll, da er alles unter "" setzt, help;)
 
So meinte ich es eigentlich:
PHP:
$senden = '<a href="mess.php?w='.$row->name.'" onclick="return !window.open(this.href, \\\'Popup1\\\', \\\'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=300, left=22, top=22\\\');"> '.$row->name.' </a> <br>';
Allerdings würden auch die Anführungszeichen (") das href-Attribut abbrechen.
Das einzige, was mir dazu (?sinnvolles?) einfällt wäre, diese als Entität zu schreiben, aber es ist wohl Zufall, wenn das funktioniert:
PHP:
$senden = '<a href=&quot;mess.php?w='.$row->name.'&quot; onclick=&quot;return !window.open(this.href, \\\'Popup1\\\', \\\'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=500, height=300, left=22, top=22\\\');&quot;> '.$row->name.' </a> <br>';
Warum übergibst Du der Funktion nicht einfach die relevanten Parameter und baust den String in der JavaScript-Funktion textAndPic zusammen?
 
Gern geschehen, richtig geglaubt habe ich nicht, dass es geht.
Das würde ich auf jeden Fall in vielen verschiedenen Browsern testen und ggf. auch mit verschiedenen DOC-Types.
 

Neue Beiträge

Zurück