Eine bestimmte Subroutine in einem Perl Modul per AJAX aufrufen
Rancor
- perl
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
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.
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...
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.
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
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
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 :-)
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...
Nenne mir deine Perl Kompetenz.
mfg Beat
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