Javascript Variablenübergabe mit folgender Stringmanipulation
Shrynk
- javascript
Ich bedanke mich im voraus für euer Bemühen, mir bei meinem Problem zu helfen.
Mein Problem besteht darin, dass ich per Javascript eine String-Variable mittels replace() manipulieren will.
Dieses Script ist in einer PHP-Datei verankert...ich poste erst einmal das Problemkind:
<?php
$tree = '<html><head></head><title></title><body>';
$tree .= ' <script language="javascript" type="text/javascript">';
$tree .= ' function manipulation(strData) {';
$tree .= ' strData = strData.replace("chars_old","chars_new");';
$tree .= ' alert(strData);';
$tree .= ' }';
$tree .= ' </script>';
$tree .= '<div id="Temp" onmouseover="javascript:manipulation(/Test/)" style="width:50px;height:50px;left:50px;top:50px;background-color:black;"></div>';
$tree .= '</body>';
$tree .= '</html>';
echo $tree;
?>
Das Problem ist, dass strData nicht manipuliert wird (aus welchem Grund auch immer)
Weise ich jedoch der Variablen strData direkt einenWert zu
(also: $tree .= 'strData = /Test/;';)
so funktioniert die Manipulation mittels replace() wunderbar.
Es sei noch erwähnt, dass die Variablenübergabe bei dem onmouseover-Event funktioniert und ich eine alert-Box erhalte
(mit dem Inhalt: /Test/), sofern ich keine Stringmanipulation vornehme!
Auch eine lokale Zuweisung einer temporären Variable innerhalb des Funktionsabschnittes manipulation()
( Bsp: $tree .= 'tmpString = strData;'; ) führt zu keinem
Erfolg, ausser ich führe keine Stringmanipulation durch,
so erhalte ich wieder die alert-Box mit dem oben geschilderten Inhalt
Ich habe schon sämtliche Foren durchsucht (nicht sauer sein, falls ein Thread existiert, in welchem das Problem als gelöst deklariert wurde...dann hab ich meine Augen wohl nicht aufgemacht, aber nach einem halben Tag Suche und 20 Wutanfällen habe ich es aufgegeben weiter zu suchen)
Vllt kann mir jmd von euch helfen, das Problem zu lösen, ich bin nahe der Verzweiflung...nein Korrektur...ich bin Verzweifelt!!!
Vielen Dank für eure Hilfe ;)
strData.replace("chars_old","chars_new");';
chars_old hier z.B. "T"
chars_new hier z.B. "g"
vergass ich noch zu erwähnen...tschuldigung^^
Hallo Shrynk,
strData.replace("chars_old","chars_new");';
chars_old hier z.B. "T"
chars_new hier z.B. "g"vergass ich noch zu erwähnen...tschuldigung^^
Hä?
Wieso schreibst du dann nicht gleich
strData.replace("T","g");
in den Quelltext. Vereinfache das Problem bitte soweit wie möglich. Wir wissen ja nicht, was du da alles im Hinterkopf hast.
Jonathan
Hä?
Wieso schreibst du dann nicht gleich
strData.replace("T","g");
in den Quelltext. Vereinfache das Problem bitte soweit wie möglich.
Dem kann ich dir zustimmen...weiss ich selber manchmal nicht :)
Hast schon Recht, werd demnächst dran denken...
Hallo Shrynk,
Vllt kann mir jmd von euch helfen, das Problem zu lösen, ich bin nahe der Verzweiflung...nein Korrektur...ich bin Verzweifelt!!!
OK, 2 Tipps:
-Wieso ist strData ein Regex?
Jonathan
OK, 2 Tipps:
- Poste relevanten HTML/Javascript-Code. Das problem ist Clientseitig, also ist der ursprüngliche PHP-Code völig unerheblich.
Tschuldige...mein Hirn is einfach schon matsche^^ hier nochma purer HTML...hab nicht dran gedacht...thx4tip ;)
<html><head></head><title></title><body>
<script language="javascript" type="text/javascript">
function manipulation(strData) {
strData = strData.replace("chars_old","chars_new");
alert(strData);
}
</script>
<div id="Temp" onmouseover="javascript:manipulation(/Test/)" style="width:50px;height:50px;left:50px;top:50px;background-color:black;"></div>
</body>
</html>
-Wieso ist strData ein Regex?
Jonathan
Mittels PHP wird eine Datenbank angsprochen, welche mir String liefert, die ich im JavaScript übergeben muss...ich habe schon mehrere Möglichkeiten in Erwägung gezogen, das Problem mittels Array
Übergabe an JavaScript zu übergeben...nur will ich auch an eine optimale Laufzeit denken...deswegen ein direkter RegEx
Hallo
onmouseover="javascript:manipulation()"
onmouseover ist ein ein javascript eventhandler, da brauchst du dann nicht mehr "javascript:" schreiben
onmouseover="manipulation()"
reicht.
/Test/
Haben die slashes einen bestimmten Sinn?
Eine String Variable ist doch eine Variable in der ein String steht, also z.B.
$Test = "Das ist ein Text";
So funktioniert der Spaß bei mir:
<?php
$test = 'Test';
$tree = '<html><head></head><title></title><body>';
$tree .= ' <script language="javascript" type="text/javascript">';
$tree .= ' function manipulation(strData) {';
$tree .= ' strData = strData.replace("T","h");';
$tree .= ' alert(strData);';
$tree .= ' }';
$tree .= ' </script>';
$tree .= '<div id="Temp" onmouseover="var Test = \''.$test.'\'; manipulation(Test);" style="width:50px;height:50px;left:50px;top:50px;background-color:black;"></div>';
$tree .= '</body>';
$tree .= '</html>';
echo $tree;
?>
MfG Emanuel
MfG Emanuel
Vielen vielen Dank..das klappt wunderbar...danke für die schnelle und unkomlizierte Hilfe...*THUMB UP*