onPageAction - zdarzenie obiektu PmaWebDir
Opis:
Zdarzenie jest wywołane po wysłaniu parametrów oraz danych z dokumentu HTML do aplikacji PROMOTIC, na przykład po wypełnieniu formularza HTML.
Parametry:
pMe | (Object) Odniesienie do PmaWebDir obiektu, w którym dane zdarzenie powstaje. |
pEvent | (Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.Method - ( String) [ do odczytu] Nazwa metody HTTP, która przesłała parametry:
"POST" - Wysłanie parametrów z formularza HTML
"GET" - Wysłanie parametrów jako części wymaganej nowej strony
pEvent.FilePath - ( String) [ do odczytu] Ścieżka względna do pliku, który jest żądany z przeglądarki internetowej.
pEvent.Params - ( String) [ do odczytu] Łańcuch tekstowy zawierający parametry w adresie URL.
Ten łańcuch jest w postaci na przykład "a=13&b=xyz". To znaczy, że "a" posiada wartość "13" oraz "b" posiada wartość "xyz".
Uzyskać poszczególne pojedyńcze wartości z tego łańcucha można przy pomocy metody Pm.HTTPGetFormValue.
pEvent.Data - ( Variant) [ do odczytu] Zawiera wysłane dane (zawartość treści żądania metody HTTP POST).
Dane są w formie łańcucha dla prostego tekstu lub w formie obiektu PmBuffer dla kompleksowej postaci binacnej.
Dane w postaci tekstu są zgodne z postacią parametrów w adresie URL, czyli możne je odczytać przy pomocy metody przy pomocy metody Pm.HTTPGetFormValue.
Dane w postaci binarnej należy opracować przy pomocy metody Pm.HttpFormDataParse. |
---|
Notatka:
Zdarzenie jest wywołane po zdarzeniu
PmaWeb.onNewRequest i przed wytworzeniem odpowiedzi klientowi (przed wczytaniem i modyfikacją pliku
pEvent.FilePath oraz przed zdarzeniem
PmaWebDir.onPageModify).
Zdarzenie jest wywołane tylko jeżeli klient, który transmituje dane, posiada uprawnienie "
WebWrite".
Formularz HTML może wysłać dane przy pomocy metody POST do serwera w postaci prestego tekstu
application/x-www-form-urlencoded, np. "Nazwa1=Wartość1&Nazwa2=Wartość2 ...", gdzie pojedyńcze wartości można odczytać przy pomocy
Pm.HTTPGetFormValue.
Formularz HTML może wysłać dane przy pomocy metody POST do serwera w komleksowej postaci binanej
multipart/form-data, która oprócz wartości tekstowych może również zawierać dane binarne oraz pliki. Dane w formie obiektu
PmBuffer można opracować przy pomocy metody
Pm.HttpFormDataParse.
Uwaga! W starszych wersjach PROMOTIC nie istniał parametr
pEvent.Data. Parametr
pEvent.Params zawierał albo parametry adresu URL lub w przypadku braku parametrów ewentualną treść żądania.
Z powodu zgodności podczas konwersji starej aplikacji na nową dodawane jest do pierwszego wiersza skryptu polecenie dla pierwotnego zachowania.
//#pragma option OldPageAction = 1 (dla
JavaScript) lub
'#pragma option OldPageAction = 1 (dla
VBScript).
Przykład1:
Przykład na przesyłanie danych z formularza HTML (metoda "POST"). Formularz HTML ma na przykład następującą zawartość:
<html><head>
<title>HtmlForm example</title>
</head>
<body>
<form action="main.htm" method="POST">
wartość:
<input type="text" name="V1" value="22"/>
<input type="submit" value="Odeślij do serwera"/>
</form>
</body>
<html>
Jeżeli klient wprowadzi wartość na przykład
33 i wyśle formularz, wtedy zostanie wywołane zdarzenie
onPageAction na serwerze z nstępująco ustawionymi wartościami:
JavaScriptVBScriptWybierz oraz skopiuj do schowka
pEvent.FilePath = "main.htm";
pEvent.Method = "POST";
pEvent.Data = "V1=33";
pEvent.FilePath = "main.htm"
pEvent.Method = "POST"
pEvent.Data = "V1=33"
W zdarzeniu może wtedy znajdować się na przykład taki algorytm:
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var sV1;
if (pEvent.FilePath == "main.htm")
{
sV1 = Pm.HTTPGetFormValue("V1", pEvent.Data);
// w zmiennej sV1 znajduje się wartość "33" ...
}
Dim sV1
If pEvent.FilePath = "main.htm" Then
sV1 = Pm.HTTPGetFormValue("V1", pEvent.Data)
' w zmiennej sV1 znajduje się wartość "33" ...
End If
Przykład2:
Przykład wysłanai parametrów jako części wymaganej strony z innej strony HTML (metoda "GET"). W dowolnej stronie HTML może znajdować się na przykład odniesienie:
<A href="main.htm?V1=33">Ustaw V1=33</A>
Przykład wysłania parametrów jako części wymaganej nowej strony bezpośrednio z wiersza adresacji przeglądarki internetowej (metoda "GET"). W przeglądarce internetowej wprowadź na przykład:
http://user1/dir/main.htm?V1=33
W zdarzeniu może wtedy znajdować się na przykład taki algorytm:
JavaScriptVBScriptWybierz oraz skopiuj do schowka
var sV1;
if (pEvent.FilePath == "main.htm")
{
sV1 = Pm.HTTPGetFormValue("V1", pEvent.Params);
// w zmiennej sV1 znajduje się wartość "33" ...
}
Dim sV1
If pEvent.FilePath = "main.htm" Then
sV1 = Pm.HTTPGetFormValue("V1", pEvent.Params)
' w zmiennej sV1 znajduje się wartość "33" ...
End If