Rene: Noch einmal: Unterprogramm mit onClick aufrufen - Wie?

Hallo noch mal!
OK - war wohl etwas kurz die Frage! Sorry! Also noch einmal etwas ausführlicher. Ich habe ein Script, indem ich ein JavaScrip-Event eingebaut habe (wie speedy schon richtig vermutet hatte). Das ganze geht mir darum, dass ich 2 CGI-Files habe, sondern nur eines. Jetzt will ich halt, wenn jemand meinen Button betätigt, dieses Unterprogramm aufrufen, welches bei mit den Namen Versand trägt. Ich dachte erst mit onClick=&Versandt würde das einfach hinhauen, aber irgendwie war das wohl falsch gedacht. Deshalb die Frage. Vielleicht könnt ihr mir einfach Tips geben, wie ich das am besten löse, aber bitte denkt daran, dass ich noch ziemlich unerfahren in dem Bereich bin. Das ist mein erstes richtiges Script ...

Danke!
René

  1. Hi,

    OK - war wohl etwas kurz die Frage! Sorry! Also noch einmal etwas ausführlicher. Ich habe ein Script, indem ich ein JavaScrip-Event eingebaut habe (wie speedy schon richtig vermutet hatte). Das ganze geht mir darum, dass ich 2 CGI-Files habe, sondern nur eines. Jetzt will ich halt, wenn jemand meinen Button betätigt, dieses Unterprogramm aufrufen, welches bei mit den Namen Versand trägt. Ich dachte erst mit onClick=&Versandt würde das einfach hinhauen, aber irgendwie war das wohl falsch gedacht. Deshalb die Frage. Vielleicht könnt ihr mir einfach Tips geben, wie ich das am besten löse, aber bitte denkt daran, dass ich noch ziemlich unerfahren in dem Bereich bin. Das ist mein erstes richtiges Script ...

    Perl läuft auf dem Server, JavaScript auf dem Client. Das ist in etwa so, als wolltest Du mit Deiner Fernbedienung das Sendeprogramm von Pro7 ändern.

    In jedem Fall mußt Du einen HTTP-Request losschicken, also eine neue Seite anfordern. Dies kann dann gerne als "script.pl?sub=Versand" geschehen. Im Script fragst Du CGI::param('sub') ab und rufst bei Bedarf die entsprechende Subroutine auf.

    Ganz einfach. Und einfacher geht es IMHO auch nicht.

    Cheatah

  2. Hallo Rene!

    Zuerst mal eine Frage: Der Unterschied zwischen JavaScript und CGI-Scripts (CGI-Tutorial: http://cgi.xwolf.com/faq/cgitutor.shtml) ist klar? Wo diese laufen und welche "Wege" dazwischen sind?
    Wenn Du Dir klar darüber bist, daß JavaScript auf dem Client, also Deinem PC und CGI's auf dem Server laufen, dann ist eigentlich auch klar, das ein CGI nicht so aufgerufen werden kann: onClick=&Versand. Du mußt schon die "richtige" Adresse des Scripts angeben, z.B. http://www.domain.de/cgi-bin/dein_script.pl.

    Damit Du im Script erkennen kannst, welche Sub dann aufgerufen werden soll, musst Du noch einen Parameter ans Script übergeben: http://www.domain.de/cgi-bin/dein_script.pl?action=versand

    Im Script liest Du den Parameter 'action':

    "klassischer Ansatz":
    use CGI;
    $command = param('action');

    "Objekt orientiert":
    use CGI;
    $query = new CGI;
    $command = $query -> param('action');

    if ($command eq "versand") {
       &versand
    }else{
       &die_andere_sub
    }

    Nun noch der Aufruf im HTML-File, z.B. so:
    <form action=" http://www.domain.de/cgi-bin/dein_script.pl?action=versand" method="post">
    <input type=button value="Versand" onClick="submit()">

    Gruß Frank
    Gruß Frank

  3. Danke! Jetzt habe ich es kapiert.
    René