Rancor: Eine bestimmte Subroutine in einem Perl Modul per AJAX aufrufen

Moin Leutz,

Ich habe ein kleines Problem....

Ich möchte eine bestimmte Subroutine in einem Perl Modul per Ajax aufrufen. Diese Subroutine soll dann eine Mysql Abfrage starten und das Ergebnis zurück senden.

Wie funktioniert das?

Das Grundprinzip eines Ajax Requestes ist mir klar.
Mein Script sieht in etwa so aus (das initieren des XMLHttpRequest-Objekts hab ich mal weggelassen)

function loadContent()
{
    xmlHttpObject.open('get','perlmodul.pm');
    xmlHttpObject.onreadystatechange = handleContent;
    xmlHttpObject.send(null);
    return false;
}

function handleContent()
{
    if (xmlHttpObject.readyState == 4)
    {
        document.getElementById('myContent').innerHTML = xmlHttpObject.responseText;
    }
}

Mir geht es speziell um den Punkt:     xmlHttpObject.open('get','perlmodul.pm');

kann das so funktionieren??

ich bedanke mich schon im vorraus für eure Hilfe

  1. Ich möchte eine bestimmte Subroutine in einem Perl Modul per Ajax aufrufen.

    Das geht nicht.

    Wie funktioniert das?

    In dem du eine Anfrage an den Server schickst und mit einem Parameter mitteilst was dort passieren soll.

    Struppi.

    1. hmm...

      In dem du eine Anfrage an den Server schickst und mit einem Parameter mitteilst was dort passieren soll.

      da ich ein absoluter AJAX Neuling bin wäre ich sehr erfreut wenn du oder jemand anders mir mal en Schema oder en kleines Beispiel posten könnte...

      1. In dem du eine Anfrage an den Server schickst und mit einem Parameter mitteilst was dort passieren soll.

        da ich ein absoluter AJAX Neuling bin wäre ich sehr erfreut wenn du oder jemand anders mir mal en Schema oder en kleines Beispiel posten könnte...

        Das hat nichts mit AJAX zu tun. Das ist das gleiche Prinzip wie bei jeder anderen CGI Anwendung.

        Struppi.

        1. Das hat nichts mit AJAX zu tun. Das ist das gleiche Prinzip wie bei jeder anderen CGI Anwendung.

          .......

          Also vlt. verstehst du mich dann besser.. ich möchte im konkreten Beispiel eine Selectbox dynamisch anpassen -> abhängig von einer varangegangenen Selectbox UND zwar ohne das die Seit neu geladen wird .... dafür brauch ich meiner Meinung nach Ajax und Perl da die Anpassung über eine Datenbak Abfrage geregelt werden soll..

          zu meiner Perl Kompetenz: ich programmiere seit einem Monat... da darf man auch dumme Fragen stellen

          1. Also vlt. verstehst du mich dann besser.. ich möchte im konkreten Beispiel eine Selectbox dynamisch anpassen -> abhängig von einer varangegangenen Selectbox UND zwar ohne das die Seit neu geladen wird .... dafür brauch ich meiner Meinung nach Ajax und Perl da die Anpassung über eine Datenbak Abfrage geregelt werden soll..

            Du willst also eine Seite programmieren, die an den user unnötige Anforderungen für den Betrieb stellt?

            zu meiner Perl Kompetenz: ich programmiere seit einem Monat... da darf man auch dumme Fragen stellen

            Ok
            Deine Aufgabe ist es, an die URL eine Querystring der Form ?par=value zu senden.

            Das Perl Modul CGI wird dir dann diesen Wert mit der Variable $query->param('par') zur Verfügung stellen.

            Für den generellen Umgang zu CGI Programmierung empfehle ich die hauseigene Perl Abteilung.

            mfg Beat

            --
            Woran ich arbeite:
            X-Torah
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            1. Du willst also eine Seite programmieren, die an den user unnötige Anforderungen für den Betrieb stellt?

              ist sicher nicht unnötig, sondern der maxmimale Komfort...

              THX die Antworten :-)

      2. da ich ein absoluter AJAX Neuling bin

        Well, Why AJAX?

        wäre ich sehr erfreut wenn du oder jemand anders mir mal en Schema oder en kleines Beispiel posten könnte...

        Nenne mir deine Perl Kompetenz.

        mfg Beat

        --
        Woran ich arbeite:
        X-Torah
                ><o(((°> ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
  2. Ich bin nicht der Perlmeister, aber soweit ich weiss kann man PM nur innerhalb von echten Perlscripten aufrufen...!?  angenommen dein Script ist perlscript.pl dann

     xmlHttpObject.open('get','perlscript.pl');  
      
     xmlHttpObject.send(null);
    

    Hier kannst Du Deine Parameter reinpacken zB.

    xmlHttpObject.send(pars);

    pars baust du vorher mit zB.

    pars = "select1=" + WertSelectEins + "&select2=" + WertSelectEins; usw.

    Dann sind select1=, select1= deine Postvariablen im Script - ich würde 'POST' statt 'GET' wählen. aber vielleicht genügt 'GET' die Perlmeister werden sich da besser auskennen. Man muss hier **vorsichtig** sein mit dem Halbsatz "ich vermute mal..." :o))

    "?" brauchts nicht oben im request.open

    xmlHttpObject.open('get','perlscript.pl?');

    sollte einen Fehler ergeben. Deinen Response kannst Du als einfachen String (zB. mit Trennzeichen) oder als XML Obj. zurückgeben je nachdem wie komplex der Response sein soll. ich würde hier String wählen.

    Viel Erfolg

    function loadContent()
    {
        xmlHttpObject.open('get','perlmodul.pm');
        xmlHttpObject.onreadystatechange = handleContent;
        xmlHttpObject.send(null);
        return false;
    }

    function handleContent()
    {
        if (xmlHttpObject.readyState == 4)
        {
            document.getElementById('myContent').innerHTML = xmlHttpObject.responseText;
        }
    }

    Mir geht es speziell um den Punkt:     xmlHttpObject.open('get','perlmodul.pm');

    kann das so funktionieren??

    ich bedanke mich schon im vorraus für eure Hilfe