cfFormMailer1.3が動かない(?)  【解決済み】

質問全般・改善要望
返信する
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

cfFormMailer1.3が動かない(?)  【解決済み】

投稿記事 by aki »

-----
ご利用のサーバ:さくらサーバー
MODXのバージョン:1.0.13J-r1
PHPのバージョン:5.3.27
MySQLのバージョン:5.1.67
ブラウザ:Firefox(Windows)
-----

いつもお世話になっております。

cfFormMailer1.3を使おうとしています。
https://github.com/clefarray/cfFormMailer ←こちらのDownload ZipボタンからDLしました)
メールフォームは1つしか設置しない予定なので、リソースではなくチャンクに環境設定や入力フォームのテンプレートを書き、環境設定の中では、それぞれのチャンク名を指定しています。

【発生している問題】
フォームを表示させたいリソースでスニペットを呼び出し、入力フォームのテンプレートまでは表示できているのですが、
確認画面に進むボタン(input要素のsubmitボタン)を押しても、確認画面に遷移せず、入力フォーム画面のままになります。
スニペットの呼び出しは、 [!cfFormMailer? &config=`cfmail_setting`!] のようにしています。

【そのほか、わかっていること】
・ いくつかの入力項目に入力チェックを設定しています。(入力必須やメアドの形式チェック)
引っかかった場合、エラーメッセージを表示するようにしており、メッセージはボタンを押した後に正常に表示されます。

・ 理由がよくわかりませんが、リセットボタン(input要素のresetボタン)のvalueが表示できず、空白のボタンになります。
スタイルシートがおかしいかと思い、外してみましたが、状況変わらず。
cfFormMailer用以外のチャンク等にリセットボタンのHTMLを書いた場合は普通に表示されるので、スニペットの関係…?

・以前に制作したサイト(MODX1.0.8J、cfFormMailer1.2)では、特に問題なく設置でき、動作しています。


このフォーラムに同じ現象の投稿がないようなので、もしかしたら自分の設置方法や書き方が間違っているかもしれません。
同バージョンをお使いで、問題なく動作している方がいらっしゃいましたら、自分の作り方か環境に問題があると思うので
動作状況を教えていただければと思います。
よろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: cfFormMailer1.3が動かない(?)

投稿記事 by yama »

<form >タグはどう記述してますか?
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: cfFormMailer1.3が動かない(?)

投稿記事 by kazuike »

yamaさんも書かれてますが、<form>タグのaction属性の指定あたりのような気がしますが…

ちなみに、私は以下のような感じにしてます。

コード: 全て選択

<form action="[~[*id*]~]" method="post">
(実際は、id、class、roleなんかも指定してますが、ここでは関係ないので省略)

あと、これ以外に確認するとしたら、送信ボタンが「type="submit"」になっているかどうか?ぐらいしか思いつきませんが…

ついでですが、
確認画面から入力画面に戻るボタンは以下のような感じです。

コード: 全て選択

<button type="submit" name="return">戻る</button>
(name="return"が重要)

※このあたりの仕様、サンプルHTMLは上記のようになっていますが、マニュアルには書いてなかったような気がします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: cfFormMailer1.3が動かない(?)

投稿記事 by kazuike »

本題と違うところですが、ちょっと抜けて(省略しすぎ)ました。すみません。
kazuike さんが書きました:確認画面から入力画面に戻るボタンは以下のような感じです。

コード: 全て選択

<button type="submit" name="return">戻る</button>
(name="return"が重要)
本当はこちらです

コード: 全て選択

<button type="submit" name="return" value="戻る">戻る</button>
このタグでは、たしかvalue属性が無いとうまく動かなかったと思います。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: cfFormMailer1.3が動かない(?)

投稿記事 by kazuike »

入力チェックで、ちゃんとエラーメッセージが出るというのは、
cfFormMailerのvalid属性指定のチェックのことですよね?

だとしたら、action指定等のレベルの問題ではないかも…

入力フォームを表示した際、
ブラウザでページのHTMLソースを確認してみてください。
<form>タグのすぐ後ろに

コード: 全て選択

<input type="hidden" name="_mode" value="conf" />
というタグが付加されていますでしょうか?

まさかと思いますが、
送信ボタンが「name="return"」になってたり、
設定チャンクで、確認画面の指定に入力フォームを指定している。
なんてことは無いですよね…

リセットボタンの表示がおかしいというのも、ちょっと気になりますが…
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: cfFormMailer1.3が動かない(?)

投稿記事 by aki »

yamaさん、kazuikeさん、ご返信ありがとうございます。

form周りの記述なのですが、今は動作を確認するため必要最低限にしていて、

コード: 全て選択

<form action="[~[*id*]~]" method="post">
お名前:<input type="text" name="onamae" size="40"><br>
<input type="submit" value="確認に進む">
<input type="reset" value="入力内容をクリア">
</form>
このようにしています。サンプルを参考にformの属性は設定しています。(HTML5で書いてます)

環境設定のチャンクは、

コード: 全て選択

# 入力画面テンプレート
tmpl_input = cfmail_input
# 確認画面テンプレート
tmpl_conf = cfmail_conf
# 完了画面テンプレート
tmpl_comp = cfmail_comp
このような感じで、名前はちゃんと分けているのですが…なぜか遷移しません。

ちなみに、cfmail_confの中身は、以下のようにしています。

コード: 全て選択

入力した名前:[+onamae+]
<form action="[~[*id*]~]" method="post">
<input type="submit" value="送信する">
</form>
また、実際のソースを確認したところ、formのすぐ後ろには

コード: 全て選択

<input type="hidden" name="_mode" value="conf" />
が追加されていたので、スニペットは一応動いているようには思えます。
あと、エラーメッセージについては、kazuikeさんのおっしゃるとおり、「cfFormMailerのvalid属性指定のチェックのこと」です。


しかし、form action周りなのでは?というご指摘から、もしやコンテナ扱いのリソースでスニペットをコールしているせいで
うまくエイリアスが取れなかったりする?と思い、子リソースを一つ作って試してみましたところ、
エイリアスがおかしくなっているっぽい現象が起きました。

今まで試していたのは、ルート直下のコンテナ扱いのリソースで、URLとしては http://www.example.com/contact/ になっています。
そこで、スニペットを呼び出して確認画面に進むボタンを押すと、入力画面のまま、URLも変わらずでした。(ブラウザ自体は更新の動きをする)

次に、このコンテナの下に通常リソースを作りました。 URLは、http://www.example.com/contact/form.html の形です。
テンプレートはブランクのままで、同じようにスニペットを呼び出してみると、入力画面はきちんと出ます。
確認画面に進むボタンを押すと今度は、URLが、http://www.example.com/contact/contact/form.html になってしまいました。
(このURLに該当するページはないので、404に指定しているリソースが表示されます)


※すみません、上記の部分は確認不足でした。一つ下の記事にて追記しました。(多分[(site_url)]がなかったせい?)

フレンドリーURLの設定が何かおかしいのでしょうか?
特に変わった設定をした覚えはなく、フレンドリーURLを使用「はい」にした時のデフォルトのままにしていると思います。
今回はスニペットやプラグインも追加で入れたものは、ほとんどなく、プラグインに「ACE」、スニペットはこの「cfFormMailer」だけで、他はデフォルトです。
リセットボタンの表示がおかしいというのも、ちょっと気になりますが…
こちらなんですが、管理画面からログアウトしてページを更新すると表示が復活して、確認に進むボタンを押すと消える状態でした。
QuickManagerが干渉する?のかと思って切ったのですが、そういうわけでもなく…なぜかわからないですが表示が消えます。
ソースで見ると、ボタンを押したあとの画面では「value」の中身がなくなってしまっています。

他に見直す部分や確認する部分がありましたら、教えてください。よろしくお願いいたします。
最後に編集したユーザー aki [ 2014年6月11日(水) 02:12 ], 累計 1 回
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: cfFormMailer1.3が動かない(?)

投稿記事 by aki »

追記です。

子リソースで使用テンプレートがブランクだったら、HTMLとして体裁を整えてないのだからダメじゃない :oops:
なので、共通テンプレート(html-head-body全部設定済みで、mainの中身だけ[*content*]になるもの)を指定して、
ちゃんとやりなおしました。

結果、エイリアスはおかしくなっていませんでした。すみません。
http://www.example.com/contact/form.html のままで、画面は入力フォームのまま遷移せず、
リセットボタンのvalueは消える、という現象のままでした。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: cfFormMailer1.3が動かない(?)

投稿記事 by kazuike »

同じcfFormMailerの1.3でも、
私が使っていたものは、2014年1月10日に更新されたもので、
最新は4月28日に更新されたものですね…
近いうちに使う予定がありますので、
最新版で一度調べてみようと思います。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
aki
メンバー
メンバー
記事: 56
登録日時: 2013年1月23日(水) 20:59

Re: cfFormMailer1.3が動かない(?)

投稿記事 by aki »

お世話になっております。

今日、もう一度改めてcfFormMailerを削除してインストールし直してみたり、
以前のバージョンのものを入れてみたりと試していたら、動くようになりました。
いろいろアドバイスいただき、ありがとございました。
自分の確認が足りていなかったと思います、申し訳ないです。

多分なんですが、環境設定の自動返信メールのフラグを立てたまま、かつ、
自動返信メールの宛先に使用するフィールド名をHTML上できちんと合わせていなかったのが
原因だと思います。(最初に入力フォームを作ったときにフィールド名を間違えていた)
設けている入力フォームには、メールアドレスが入力されているため
エラーメッセージなどが表示されず、画面が遷移していないように見えたのですが
おそらく、自動返信先にするメールアドレスが見つからなくて、メールアドレス未入力のエラーになっていたんですね。

リセットボタンのvalueがなぜか消える問題は、まだ続いていますが、
リセットはなくても構わないものなので、付けないことにして進めようと思います。

すみませんでした。ありがとうございました。
返信する