Quitschibo: Wie rufe ich ein Perlscript aus einer JavaScript datei auf?

Hi Zusammen,

also, folgende Situation:

ich hab ein JavaScript .js File aus welchem per Zufallsgenerator datensätze ausgewählt werden.
Nun möchte ich die Variablen des gewählten Datensatzes an ein Perlscript übergeben werden, also script.pl?var1=wert1&var2=wert2 etc...
aber wie genau rufe ich diese Perlscript auf? JavaScript ist für mich leider noch Neuland... ich hoffe das ihr mir da weiterhelfen könnt.
Achja... bevor jetzt einer sagt wieso so umständlich mit javascript files etc... das muss leider so sein und kann nicht geändert werden.

Schonmal danke für eure Hilfe

Quitschi

  1. Hi,

    Nun möchte ich die Variablen des gewählten Datensatzes an ein Perlscript übergeben werden, also script.pl?var1=wert1&var2=wert2 etc...
    aber wie genau rufe ich diese Perlscript auf?

    das CGI-Script (ob Perl oder nicht ist egal) _muß_ eine Rückgabe an den Browser geben, und alle JavaScript- oder sonstige Funktionen bauen auch darauf, daß eine kommt. Was immer Du tust, ändert also entweder eine Seite (z.B. mit window.open() oder location.href), oder aber landet sonstwie im Browser.

    Wenn die Ausgabe des Scripts nicht relevant ist, reicht es, die Rückgabe des Scripts über ein JavaScript-Objekt in den Browsercache zu laden, wo es dann eben nie verwendet wird:

    var xyz = new Image;
    xyz.src = 'script.pl';

    Daß das Script keine Grafik zurückgibt ist egal; es kommt ja nur darauf an, daß es auf dem Server angestoßen wurde.

    _Wenn_ Du aber eine Rückgabe brauchst, dann wird es _richtig_ kompliziert... in dem Fall schlage ich vor, daß Du hieran arbeitest:

    das muss leider so sein und kann nicht geändert werden.

    Entweder Du überzeugst Deinen Auftraggeber, das Pflichtenheft zu ändern, oder Du sagst ihm, daß Wunder etwas länger brauchen und vor allem mehr kosten ;-)

    Cheatah

    1. Nochmal hi,

      also ich glaub irgendwer hat da jetzt was nicht ganz verstanden.. also...

      es ist so das das .js file von einem browser aus aufrufen wird, es errechnet (zufallgenerator) und dann eine ausgabe des errechneten wertes macht (in meinem fall ein paar variablen)... so..

      nun wie ich aber das das .js file nur ein paar informationen an ein .pl file übergibt... das .pl file selbst gibt keine ausgabe aus, es verarbeitet nur die übergebenen variablen und speichert sie dann... es müssen also KEINE infos zurück ans .js file geschickt werden...

      es muss das irgendwie gehen das ich mit script.pl?var etc.. ein paar variablen ein so ein script übergebe das diese dann in einer datenbank speichert...

      ich such also so ne art open befehl...etwas, was eben ein script ausführt.

      CU Quitschi

      Hi,

      Nun möchte ich die Variablen des gewählten Datensatzes an ein Perlscript übergeben werden, also script.pl?var1=wert1&var2=wert2 etc...
      aber wie genau rufe ich diese Perlscript auf?

      das CGI-Script (ob Perl oder nicht ist egal) _muß_ eine Rückgabe an den Browser geben, und alle JavaScript- oder sonstige Funktionen bauen auch darauf, daß eine kommt. Was immer Du tust, ändert also entweder eine Seite (z.B. mit window.open() oder location.href), oder aber landet sonstwie im Browser.

      Wenn die Ausgabe des Scripts nicht relevant ist, reicht es, die Rückgabe des Scripts über ein JavaScript-Objekt in den Browsercache zu laden, wo es dann eben nie verwendet wird:

      var xyz = new Image;
      xyz.src = 'script.pl';

      Daß das Script keine Grafik zurückgibt ist egal; es kommt ja nur darauf an, daß es auf dem Server angestoßen wurde.

      _Wenn_ Du aber eine Rückgabe brauchst, dann wird es _richtig_ kompliziert... in dem Fall schlage ich vor, daß Du hieran arbeitest:

      das muss leider so sein und kann nicht geändert werden.

      Entweder Du überzeugst Deinen Auftraggeber, das Pflichtenheft zu ändern, oder Du sagst ihm, daß Wunder etwas länger brauchen und vor allem mehr kosten ;-)

      Cheatah

      1. Hi,

        es ist so das das .js file von einem browser aus aufrufen wird, es errechnet (zufallgenerator) und dann eine ausgabe des errechneten wertes macht (in meinem fall ein paar variablen)... so..

        nun wie ich aber das das .js file nur ein paar informationen an ein .pl file übergibt... das .pl file selbst gibt keine ausgabe aus, es verarbeitet nur die übergebenen variablen und speichert sie dann... es müssen also KEINE infos zurück ans .js file geschickt werden...

        Wie Cheatah schon schreibt, MUß ein Perl-Skript etwas zurückgeben. Das geht einfach nicht anders.
        Neben der von Cheatah beschriebenen Möglichkeit, könntest du auch einfach ein neues Fenster öffnen,
        in dem dieses Perlskript geladen wird, und dann zum Beispiel nur ein window.close(); ausgibt.

        Der Aufruf des Skriptes könnte also so aussehen:
        sub skriptausfuehren(var1, var2)
        {
          window.open("script.pl?var1=" +var1+ "&var2=" +var2 ,"fenstername","");
        }

        Die Parameterübergabe an das Skript wird also dynamisch erzeugt.

        Das Skript verarbeitet die in var1 und var2 übergebenen Daten, und gibt anschließend einen HTML-Header
        und eine HTML-Datei mit entsprechendem window.close()-JavaScript aus.
        Oder du nimmst einfach die von Cheatah beschriebene Methode.

        Gruß,
        Slyh