@ndre@s: +(JAVA_SCRIPT) zwei verschiedene Parameter in einer URL

Hallo Leute,

Wie bekomme ich das gemixt: Das PerlScript soll einen Parameter übergeben bekommen und das Javascript, welches von dem Perlscript erzeugt wird einen weiteren.

Also (mal davon ab, das es nicht funktioniert) etwa so:

... <a href="adresse.de/seite.pl?parameter_fuer_perl?parameter_fuer_javascript">...

Vielleicht bin ich ja auch nur blind und sehe die naheliegende Lösung nicht.

Gruß

Andreas

  1. Grüssi,

    Wie bekomme ich das gemixt: Das PerlScript soll einen Parameter übergeben bekommen und das Javascript, welches von dem Perlscript erzeugt wird einen weiteren.

    Also (mal davon ab, das es nicht funktioniert) etwa so:
    ... <a href="adresse.de/seite.pl?parameter_fuer_perl?parameter_fuer_javascript">...

    Was sprach gegen:
    <a href="adresse.de/seite.pl?parameter_fuer_perl=wert1&parameter_fuer_javascript=wert2"> ?

    Perl lest halt nur den ersten Parameter aus, und das Javscript konzentriert sich auf den zweiten.

    lg bernhard

    1. Hallo Bernhard

      Was sprach gegen:
      <a href="adresse.de/seite.pl?parameter_fuer_perl=wert1&parameter_fuer_javascript=wert2"> ?

      Dagegen spricht die länge der url-zeile UND das die scripte selber wissen welcher inhalt wohin gehört, also kein schlüsselname mitgegeben werden muss.

      Also:
      <a href="adresse.de/seite.pl?wert1&wert2">
      sollte ausreichen.

      Ich sehe schon, dass ich das Problem zu eindimensional geschildert habe.
      Ich wollte nach Möglichkeit die selben Auslesescripte verwenden, die auch "reine" Perl oder Javascript Datenübergaben handeln.

      Wird wohl aber doch einen komplett-umbau nach sich ziehen müssen.

      Wohl nicht zu ändern.

      Gruß

      Andreas

      1. Grüssi,

        Was sprach gegen:
        <a href="adresse.de/seite.pl?parameter_fuer_perl=wert1&parameter_fuer_javascript=wert2"> ?

        Dagegen spricht die länge der url-zeile UND das die scripte selber wissen welcher inhalt wohin gehört, also kein schlüsselname mitgegeben werden muss.

        hmmm, ich dachte schon dass die Sache etwas komplexer ist - aber man bietet halt mal das naheliegendste an ;-)

        Ich sehe schon, dass ich das Problem zu eindimensional geschildert habe.

        Dann erweitere doch die Dimensionen ;-)
        -- Aber sei vorsichtig dabei: Zerstöre die Matrix nicht *fg*

        Ich wollte nach Möglichkeit die selben Auslesescripte verwenden, die auch "reine" Perl oder Javascript Datenübergaben handeln.

        wie sieht denn so ein "Auslesescript" aus von dir? Vielleicht fällt es mit ein bissl Code leichter, dein Problem zu verstehen. Wie lest du die Parameter aus, und wie kommen sie ins Javascript (bzw. wo soll JS was auslesen)?

        Wird wohl aber doch einen komplett-umbau nach sich ziehen müssen.
        Wohl nicht zu ändern.

        Doch, ich werd zwar irgendwann aussteigen, weil mir Cheatah wieder den Kopf mit lauter verschachtelten RegEx'es und $$-Tricks anfüllen wird, aber so unlösbar schaut mir dein Problem nicht aus :-)

        lg bernhard

      2. Hi,

        <a href="adresse.de/seite.pl?parameter_fuer_perl=wert1&parameter_fuer_javascript=wert2"> ?

        Dagegen spricht die länge der url-zeile

        unproblematisch.

        UND das die scripte selber wissen welcher inhalt wohin gehört,

        Wissen sie das? Wissen sie es nicht mehr, wenn man den Konventionen entsprechend agiert?

        also kein schlüsselname mitgegeben werden muss.
        <a href="adresse.de/seite.pl?wert1&wert2">

        Herzlichen Glückwunsch. Du hast die Wartbarkeit der Scripts soeben gegen null reduziert.

        Man sollte immer name/value-pairs übergeben. Bei Perl nimmt Dir CGI.pm dann die ganze Parserei ab (die i.d.R. sonst eh falsch gemacht wird), und es ist _deutlich_ leichter, später zusätzliche Informationen unterzubringen.

        Ich sehe schon, dass ich das Problem zu eindimensional geschildert habe.

        Oder zu eindimensional betrachtet ;-) (Sorry...)

        Cheatah

      3. Hallo Bernhard

        Was sprach gegen:
        <a href="adresse.de/seite.pl?parameter_fuer_perl=wert1&parameter_fuer_javascript=wert2"> ?

        Dagegen spricht die länge der url-zeile UND das die scripte selber wissen welcher inhalt wohin gehört, also kein schlüsselname mitgegeben werden muss.

        Also:
        <a href="adresse.de/seite.pl?wert1&wert2">
        sollte ausreichen.

        Wenn du immer nur zwei Parameter übergibst kann sich javascript auch alleine um seinen Parameter kümmern. Vorausgesetzt der zweite (oder letzte) Parameter ist für Javascript, dann such einfach aus dem document.URL das letzte "&", schmeiss den Kram davor weg und du hast deinen Parameter. Der Rest ist dann perl-Sache.

        Im übrigen muss ich den anderen beipflichten, dass es wohl kaum Sinn machen kann, mit der Konvention zu brechen...;o)

        Schick mal Code..

        Gruß

  2. Da siehst du offenbar wirklich den bekannten Wald nicht...:-)
    Die Parameter werden ganz gewöhnlich übermittel.
    <a href="adresse.de/seite.pl?param1=perl&param2=javascript">

    In deinem Perl-Script kannst du den ersten Parameter wie gewohnt auswerten. Den zweiten (oder n-ten) Parameter schreibst du einfach mit print $param2 in deine JavaScript-Funktion bspw. in eine Variable.

    Gruß
    Sascha

  3. Hi,

    Wie bekomme ich das gemixt: Das PerlScript soll einen Parameter übergeben bekommen und das Javascript, welches von dem Perlscript erzeugt wird einen weiteren.

    äh... Du willst also zwei Parameter haben. Welches Programm dann welchen verwendet, ist nur für die Programmlogik relevant, nicht für das Aussehen der URL.

    http://bla/pfad/zum/script.pl?par=wert&par=wert&par=wert

    <a href="adresse.de/seite.pl?parameter_fuer_perl?parameter_fuer_javascript">

    Denke dran, daß Du ein "&" innerhalb von HTML-Attributen als "&" kodieren mußt.

    Cheatah

  4. ... ich dachte eben, ich kriegs mit weniger arbeit hin.

    Es handelt sich um eine Site, die bislang "nur" HTML und Javascript verwendet hat und die ich jetzt auf Perl umstricken will.

    Und da harken mir eben die beiden (JS/PERL) etwas durcheinander.
    Bisher hatte eben Javascript die Alleinherschaft über die URL-Strings und da sahen die Links etwa so aus:

    javascript:top.go_link('seite/blatt70.htm?_1_12_70')

    ... und jetzt sehen sie so aus:

    /perl/broschuere.pl?blatt=70&navigation=next

    und dann fehlt mir der Rest aus 'blatt70.htm?_1_12_70'
    da sich das Javascript aus '_1_12_70' die aufrufe für die anderen Frames (Wegweiser, Menüleisten etc) zsammenbaut.

    Ich werde also um die Änderung der gesamten Javascripte nicht umhinkommen.

    Vielleicht schmeiss ich aber auch die gesamte JS-Navigation auf den Müll (wenn ich eh schon mal am wegscjmeissen bin) und mache alles (was geht) in Perl.

    Trotzdem Danke für die Vorschläge
    Gruß

    Andreas

    1. Hi,

      ... ich dachte eben, ich kriegs mit weniger arbeit hin.

      die Arbeit machst Du höchstens ein Mal. Mach Dir ruhig auch die Mühen anderer zunutze, die sich mit der Problematik weitaus besser auskennen als Du und ich.

      Vielleicht schmeiss ich aber auch die gesamte JS-Navigation auf den Müll (wenn ich eh schon mal am wegscjmeissen bin) und mache alles (was geht) in Perl.

      Der Vorteil dessen wäre, daß Deine Besucher nicht zwingend

      • JavaScript aktivieren,
      • einen JavaScript-fähigen Browser installieren,
      • mit dem Administrator um die Erlaubnis, JavaScript zu aktivieren feilschen müssen, oder
      • erst mal rauskriegen müssen, was JavaScript überhaupt ist und wie man es anschaltet.

      Wobei Du immer noch diejenigen ausschließt, die JavaScript gar nicht haben _wollen_ oder aber für deren System es gar keinen JavaScript-fähigen Browser gibt (WAP, Blinde... kann WebTV eigentlich JavaScxript?) Gehe von (je nach Site) ca. 20% aus, die Du bei Abhängigkeit von JavaScript ausschließt.

      Cheatah