replace()
till
- javascript
0 Phil0 till0 Sven Rautenberg0 Till
0 Christian Seiler
warum funzt folgendes nicht:
----------javascript-------
function soundso(txtorg) {
var vormals = txtorg;
var txt = vormals.replace(/zzzzzz/," ");
...usw
}
textorg kommt aus php:
$txtorg=ereg_replace(" ", "zzzzzz", $text);
Also sieht der Text zum Beispiel so aus: "HallozzzzzzLeutz."
Das soll dann per Javascript wieder rückgängig gemacht werden: "Hallo Leutz."
Ich hoffe ihr könnt mir helfen.
ciao, Till
Hi!
Ich vesteh den Sinn der Aktion nicht, wenn du mit PHP arbeiten kannst, dann mach das doch mit PHP.
Und wenn du _nur_ " " mit ersetzen willst, dann kannst du dir doch die JS-Routine ganz sparen...
Naja so doof bin ich auch nicht.
Aber mit php kann man nunmal keine Layer per Roll-Over-Effekt erscheinen lassen, wo dieser Text drin steht.
Und da dies voll dynamisch sein soll muss ich halt php verwenden, das den text aus bestimmten Gründen gecrypt an die javascript-funktion übergibt, woraus dann dieser layer entstehen soll.
das erklärt hoffentlich meine etwas merkwürdige vorgehensweise.
also wenn jemand ne ahnung hat warum die funktion in der oben genannten form nicht funzt, wäre ich sehr dankbar.
ciao, till
Moin!
Naja so doof bin ich auch nicht.
Aber mit php kann man nunmal keine Layer per Roll-Over-Effekt erscheinen lassen, wo dieser Text drin steht.
Hä? Wieso das denn nicht?
PHP gibt nur HTML und Javascript aus. Wenn du die Datei identisch als HTML-Datei speicherst, dann muss sie ebenso funktionieren, als wenn sie von PHP generiert wird. Das bedeutet: Wenn du ein geschütztes Leerzeichen benötigst, dann gib es aus - in PHP!
Ich denke, du denkst zu kompliziert. Dein Problem liegt woanders, und du versuchst gerade mit untauglichen Mitteln, deine Fehler zu überspielen, obwohl eine Fehlerkorrektur viel angebrachter wäre. Wenn dein PHP derzeit noch nicht die richtige HTML-Ausgabe für dein Javascript hinkriegt, dann korrigiere dein PHP - und bastel nicht mit Javascript eine Lösung, die deine fehlerhafte PHP-Ausgabe wieder geradebiegt. Alles andere ist einfach nur haarsträubender Blödsinn!
Das Forum hilft gerne auch bei PHP-Problemen. Erkläre dein Vorhaben, deinen gewünschten Output und die generierende PHP-Datei (Quellcode), und dir wird geholfen werden.
- Sven Rautenberg
Also "haarsträubender Blödsinn" ist das auf keinen Fall. Es ist halt ein etwas größeres Projekt, was zu lange dauern würde um das komplett zu beschreiben.
Meine Grundfrage war eigentlich, ob die funktion replace(); (siehe anfang) richtig ist, da die in meinem zusammenhang nicht funktioniert.
Hallo Till,
warum funzt folgendes nicht:
----------javascript-------
function soundso(txtorg) {
var vormals = txtorg;
var txt = vormals.replace(/zzzzzz/," ");
...usw
}
Wieso? Das geht doch:
--------------------------------------------------------
<html>
<head>
<script type="text/javascript">
<!--
function soundso(txtorg) {
var vormals = txtorg;
var txt = vormals.replace(/zzzzzz/," ");
alert (txt);
}
//-->
</script>
</head>
<body>
<a href="#" onClick="soundso('HallozzzzzzLeutz.'); return false;">test</a>
</body>
</html>
--------------------------------------------------------
Wie übergibst Du eigentlich die Variable von PHP nach JS? Dir ist klar, dass PHP und JavaScript auf zwei getrennten Ebenen ablaufen (PHP: Server, JS: Client) und Du daher von JS nicht so ohne weiteres auf PHP-Variablen zugreifen kannst? Du musst mit PHP den JS-Code für die Variablen generieren, z.B. so:
echo '<script type="text/javascript">' . "\n";
echo '<!--' . "\n";
echo 'var txtorg = "' . $txtorg . '";' . "\n";
echo '//-->' . "\n";
echo '</script>' . "\n";
Grüße,
Christian
P.S.: ein kleiner Tipp zu Deinem PHP-Teil: ereg_replace ist böse[tm] (lahm, nicht binärsicher), nimm' entweder str_replace (in diesem Falle am besten) oder preg_replace. (wenn Du reguläre Ausdrücke brauchst)