確認画面の次の画面(Perlスクリプトを指定)に入力パラメータを渡すには

169 views
Skip to first unread message

HOSONO

unread,
Oct 19, 2012, 6:17:13 AM10/19/12
to mt-a...@googlegroups.com
JVC細野と申します。お世話になっております。

A-Form PC/Mobile 3.5を利用させていただいております。

現在、A-Formの詳細設定画面の「送信完了時の動作」で、URLでジャンプ先(Perlスクリプト)を明示し、
そのPerlスクリプトにA-Formのフォーム画面で入力された情報をGETもしくはPOSTで渡せないか、と
思案しております。

既存の「外部パラメータ受け渡し機能」は、A-Formのフォーム画面にパラメータを渡す方法ですが、
フォーム画面&確認画面の後に続く画面(URL)に入力された情報をパラメータとして
渡したいのです。

もしこうした利用方法をご存じの方がいらっしゃいましたら、
ご教示いただけますと助かります。

失礼いたします。

A-Form開発チーム

unread,
Oct 25, 2012, 2:17:15 AM10/25/12
to mt-a...@googlegroups.com
アークウェブの大村と申します。お世話になっております。

完了時URLへ入力内容をGET/POSTする機能はございませんが、
代替案はいくつかございます。


案1. 確認画面でAjaxにてPOST送信した後に、完了時URLへの送信処理を付け加える
案2. A-Formデフォルトの完了画面に送信内容を出力、そこから更に完了時URLへ送信する
案3. A-Form送信時のコールバックにて、完了時URLへ送信するプラグインを開発する


案1は、完了時の動作を「確認画面に完了メッセージを表示」に設定しておきます。
この場合、A-Formは確認画面で送信ボタンを押した際に、画面を切り替えること無く、
Ajaxにてaform_engine.cgiへPOSTします。(aform_confirm.jsで実行しています)
このaform_confirm.jsをカスタマイズして、A-formのPOST処理が終わって返ってきたあとに、
完了URLへGET/POSTさせる処理を付け加える形です。


案2は、完了時の動作を「完了画面を表示」に設定しておきます。
この場合、完了時にA-Formデフォルトの完了画面が表示されます。
A-Formデフォルトの完了画面には入力内容を出力することも可能となっています。
テンプレート(aform_finish.tmpl)のカスタマイズが必要ですが、

<mt:loop name="fields">
<input type="hidden" name="aform-field-<mt:var name="id">" value="<mt:var name="value" escape="html">" />
</mt:loop>

このように記述することで、各項目の入力内容を取得できます。この記述例では各項目をhiddenタグとして出力しています。
このA-Formの完了画面から、更に完了時URLへ送信するような仕組みを用意することで実現できるかと思います。
確認画面→A-Formの完了画面→完了時URL という流れです。



案3は、完了時URLが画面表示をするためのものではなく、
AFormへの送信とともに、バックグラウンド処理として完了時URLへもGET/POSTでデータを送りさえすれば良いケースです。
AFormには各所にコールバックが仕込まれており、他プラグインから処理を割り込むことができるようになっています。
受付データを保存したあとのコールバックポイント「aform_after_store」に割りこむようなMTプラグインを開発し、
そのプラグインで完了時URLへデータを送信するような形です。


細野様のご要望を満たせるものであるかどうか分かりませんが、ご検討ください。
Reply all
Reply to author
Forward
0 new messages