onmouseover mit perl
newbie83
- perl
Hallo,
habe da ein kleines Problem:
Gibt es für Perl auch eine Art onmouseover wie bei html?
ich würde nähmlich gerne den Text der zuvor in ein Formular eingegeben wurde etwas aufpepen und zwar mit diesem onmouseover. Der Der Text wird dann per perlscript verarbeitet und in einem html dokument ausgegeben.
Es soll da zb nur ein Wort stehen wie: "Eintrag" und wenn man mit der Maus über das Wort geht soll dann der eigentliche Text der zuvor eingegeben wurde erscheinen, wenn man mit der Maus wieder weg geht soll halt wieder das eine Wort stehen.
das habe ich hier bei selfthtml gefunden:
<h1 id="Test"
onmouseover="this.innerHTML = 'Sehen Sie?'"
onmouseout="this.innerHTML = 'Ich bin dynamisch'">Ich bin dynamisch</h1>
doch wie baue ich das jetzt ein oder besser gesagt um das da immer der Text der in das Formular eingetragen wurde, steht.
ich hoffe ich habe mich verständlich ausgedrückt :-)
Ich hoffe mir kann jemand weiterhelfen.
Im voraus schon mal Vielen Dank.
Hi,
Gegenfrage:
Was sieht der Client vom Perlprogramm?
Gruß
Reiner
Hi!
Der Client bekommt gar nichts davon mit, daß es sich um ein Perl-Programm (oder um ein PHP-Script oder sonstwas) handelt, das den HTML-Code erzeugt.
Du schreibst daher keinen onmouseover in Perl, sondern du schreibst HTML-Code mit Perl.
Du gibst ganz normalen HTML-Code mit Perl aus:
print "<p>irgendwas</p>";
Da kannst du dann auch einfach deinen Eventhandler mit rein setzen.
Mehr dazu findest du in SelfHTML.
Dort ist auch ein Kapitel über Perl enthalten.
Schöner Gruß,
rob
Hi!
Der Client bekommt gar nichts davon mit, daß es sich um ein Perl-Programm (oder um ein PHP-Script oder sonstwas) handelt, das den HTML-Code erzeugt.
Du schreibst daher keinen onmouseover in Perl, sondern du schreibst HTML-Code mit Perl.
Du gibst ganz normalen HTML-Code mit Perl aus:
print "<p>irgendwas</p>";
Da kannst du dann auch einfach deinen Eventhandler mit rein setzen.
Mehr dazu findest du in SelfHTML.
Dort ist auch ein Kapitel über Perl enthalten.Schöner Gruß,
rob
Hi
erstmal danke für eure antworten.
also ich bau den eventhandler(onmouseover) einfach in
print "<p>irgendwas</p>";
ein???
hab ich das so richtig verstanden??
das habe ich probiert, aber dann kommt immer ne fehlermeldung, naja vielleicht bin ja auch einfach zu blöd dazu, kenn mich halt noch net so aus mit perl.
kann mir jemand bitte schreiben wie ich das dann in diesen print befehl einbinde.
Nochmal Danke für eure mühe.
Gruß
newbie83
rob
Hi
erstmal danke für eure antworten.
Bitte zitiere so dass der Kontext erhalten bleibt, oder einfach gar nicht.
also ich bau den eventhandler(onmouseover) einfach in
print "<p>irgendwas</p>";
ein???
Ja.
Hier läßt sich auch schön das CGI Modul benutzen. print CGI::p('irgendwas');
das habe ich probiert, aber dann kommt immer ne fehlermeldung, ...
Also bei mir kommt bei der Zeile keine Fehlermeldung.
Struppi.
Hi
also ich bekomm dauernd server error wenn ich den eventhandler einbinde.
das ist der eventhandler:
<h1 id="Test"
onMouseover="document.all.Test.innerText='Sehen Sie?'"
onMouseout="document.all.Test.innerText='Ich bin dynamisch'">Ich bin dynamisch</h1>
und wie baue ich denn jetzt richtig hier ein:
print "<p>irgendwas</p>";
Danke für eure Hilfe.
Gruß
Newbie83
also ich bekomm dauernd server error wenn ich den eventhandler einbinde.
um CGI Programme zu debuggen, möchtest du CGI::Carp verwenden. Wenn's nicht klappt, dann in einem BEGIN {} Block.
das ist der eventhandler:
<h1 id="Test"
onMouseover="document.all.Test.innerText='Sehen Sie?'"
onMouseout="document.all.Test.innerText='Ich bin dynamisch'">Ich bin dynamisch</h1>
document.all ist IE 4? Wo hast du das her?
und wie baue ich denn jetzt richtig hier ein:
print "<p>irgendwas</p>";
Hast du dir die Doku zum CGI Modul angeschaut? Ich meine dort steht auch wie man JS Eventhandler einbaut.
Struppi.
das ist der eventhandler:
Nein, das ist HTML-Code, den dein Script ausgeben soll. Das CGI-Modul funktioniert zur Ausgabe von HTML immer nach dem gleichen Schema:
$cgi->HTML_Element( { -attribut => 'Wert 1', -nocheins => 'Wert 2' },
'Text, sofern kein leeres Element');
<h1 id="Test"
onMouseover="document.all.Test.innerText='Sehen Sie?'"
onMouseout="document.all.Test.innerText='Ich bin dynamisch'">Ich bin dynamisch</h1>
Dann wird daraus:
$cgi->h1( { -onmouseover => "document.all.Test.innerText='Sehen Sie?'",
-onmouseout => "document.all.Test.innerText='Ich bin dynamisch'" },
'Ich bin dynamisch' );
und wie baue ich denn jetzt richtig hier ein:
print "<p>irgendwas</p>";
Bitte tu uns einen Gefallen und poste den kompletten HTML-Code, den du als Ergebnis haben willst. Was willst du wo einbauen? Eine Überschrift in ein P-Element? Statt der Überschrift ein P-Element? Oder was ganz anderes?
Siechfred
so das ist der Teil des perl scriptes der für die ausgabe in das html dokument verantwortlich ist:
$outfile = ">> C:/..../ausgabe.html";
open(OUTFILE, $outfile);
print OUTFILE "
<hr>
<b> Eingetragen am $date <br><br></b>
<b>Eintrag:</b><br>
"$in{'comments'}"
";
close(OUTFILE);
das ist das html dokument in der das dann ausgegeben wird.
<HTML>
<head><title>....</title>
</head>
<body bgcolor=#663333 text=#FFCC99>
<font size=+1>Eintragungen: <p>
jetzt soll der text der vorher über das eingabeformular eingegeben wurde mit dem mouseover funktionieren, er soll nur angezeigt werden wenn ich mit der maus drüber fahre, ansonten soll halt nur ein wort oder so da stehen. Die Formulareingabe hab ich "comments" genannt.
Hoffe das es jetzt etwas verständlicher ist :-)
Newbie83
das ist das html dokument in der das dann ausgegeben wird.
<HTML>
<head><title>....</title>
</head>
<body bgcolor=#663333 text=#FFCC99>
<font size=+1>Eintragungen: <p>
Autsch. Du bist Fan von HTML 3.2?
jetzt soll der text der vorher über das eingabeformular eingegeben wurde mit dem mouseover funktionieren, er soll nur angezeigt werden wenn ich mit der maus drüber fahre, ansonten soll halt nur ein wort oder so da stehen. Die Formulareingabe hab ich "comments" genannt.
Du hast kein Perl- sondern ein mit Javascript gewürztes HTML-Problem. Erstelle als Erstes eine HTML-Seite mit Beispieldaten, die so funktioniert, wie du dir das vorstellst. Erst, wenn alles zu deiner Zufriedenheit verlaufen ist, mache dir Gedanken über die Umsetzung in Perl, das Prinzip nannte ich dir bereits.
Siechfred
ok danke für Eure Hilfe.
Wie gesagt ich bin halt noch Neuling in Perl.
Aber bis jetzt hat alles funktioniert was ich da so gemacht habe, bis halt auf dieses onmouseover.
Naja ich habe ja jetzt einen Lösungsweg von Siechfred, Danke.
Muss halt schauen wie ich das jetzt alles hinbekomme.
Newbie83
Muss halt schauen wie ich das jetzt alles hinbekomme.
Wenn deine Beispielseite steht, frage einfach nochmal nach. Auch beim Erstellen der Beispielseite kann dir das Forum helfen.
Siechfred
so das ist der Teil des perl scriptes der für die ausgabe in das html dokument verantwortlich ist:
$outfile = ">> C:/..../ausgabe.html";
open(OUTFILE, $outfile);
Dein Code ist ... mir fällt kein passendes Wort ein, schlecht wäre beschönigend.
Du benutzt
* kein use strict, gerade als Anfänger und bei der Entwicklung ist das extrem hilfreich.
* keine Module, du musst nicht jedesmal das Rad neu erfinden und lernen tust du auch nicht besser wenn du Module vermeidest, da gerade CPAN ein wichtiges Argument ist das für die Verwendung von Perl spricht.
* Ich vermute, die Warnungmeldungen sind auch nicht eingeschaltet.
* du prüfst ausserdem nicht ob die Funktionen überhaupt erfolgreich durchgeführt wurden
<body bgcolor=#663333 text=#FFCC99>
<font size=+1>Eintragungen: <p>
Der code ist fehlerhaft und verwendet hoffnungslos veraltete Elemente, warum?
Naja und schlussendlich hast du uns immer noch nicht den Grund für den server Error genannt.
Struppi.