完了送信するボタンを押すと「通信に失敗しました。」となります返信する

別案件にて当プログラムをありがたく利用させていただき、
今回もと思ったのですが、問題が発生いたしました。
有償無償の判断がつかず、書き込みをさせていただいております。

プログラムはWordpressに設置しています。
タイトルの通りエラーメッセージが出ますが、その後メールは双方に届きます。
ただ、各項目名が【】のように空白となっております。
また、未入力のまま送信ボタンを押すと「が入力されていません」といった表示となります。

サーバーはさくらインターネットで、phpのバージョンは7.1です。
ソースを見たときにmailform-js.phpの一部が文字化けしている点が気になりますが、
編集は行っていないので、文字コードはutf-8nのまま変更はされていないと思われます。

別案件のサーバーは地元ケーブルテレビ局のレンタルサーバーでした。

ご返信いただければ幸いです。
よろしくお願いいたします。

Re: 送信するボタンを押すと「通信に失敗しました。」となります

ページを確認いたしました。
今回のページの場合は既存サイトに組み込んでおりますが、当サイトの以下のページで解説している内容だけを実施した状態ですので、無償対応の範囲内となります。

【通常版のメールフォームをWordPressサイトに設置する手順を解説】
https://www.1-firststep.com/archives/3659

【レスポンシブ メールフォームのカスタマイズ方法についての解説】
https://www.1-firststep.com/archives/1433




おそらく、さくらサーバ提供のWebフォントを使用しているのではないでしょうか?
その影響でページ内のあらゆる要素に class="typesquare_tags" というクラス名が動的に追加されております。

上記のようにHTML側が変わってしまっている影響で、メールフォームプログラムが正常に項目名などを取得できない状態になっていると思われます。(以下のページを参照)

【レスポンシブ・メールフォームの各ファイル相関図】
https://www.1-firststep.com/archives/3166




一度Webフォントをオフにして動作テストをしてみてください。

Re: 送信するボタンを押すと「通信に失敗しました。」となります

たに様

無償でのご対応及び早速のご回答をいただきましてありがとうございます。

さくらサーバーのWebフォントをオフにしたところ
【項目名】は無事反映する状態になりました。

しかし、送信するボタンを押したときに「通信に失敗しました。」が変わらず表示されていまします。
以前同様、メールは双方に届き、メールの内容自体は問題なくなりました。
ページの再読込、ブラウザキャッシュの削除は試行してみました。

重ね重ね申し訳ございません。
よろしくお願いいたします。

Re: 送信するボタンを押すと「通信に失敗しました。」となります

症状を確認いたしました。
このエラーの原因はform要素のaction属性値が、以下のようにwww付きのURLになっていることです。

<form action="http://www.virts-pro.sakura.ne.jp/kanaeru_wp/wp-content/themes/white/contact/php/mailform.php" method="post" id="mail_form">




なぜwwwを付けただけでこのようなエラーになるのかを順序立てて解説しますと、以下のようになります。

1、このメールフォームはAjaxによって送信する仕組みです。

2、Ajax通信はクロスドメイン(別のドメイン)間で送信することができません。
(サーバの設定などによって変更可能ですが、初期設定では不許可です)

3、virts-pro.sakura.ne.jp と www.virts-pro.sakura.ne.jp はWebの仕様として別のドメインの扱いになります。
(www付きはサブドメイン)




というわけですので、form要素の部分のwwwを削除して送信テストをしてみてください。

Re: 送信するボタンを押すと「通信に失敗しました。」となります

たに様

度々の調査及びご回答をいただき、ありがとうございます。

ご回答のとおり、www.の削除で
問題なく送信からサンクスページの表示へと動作することができました。

原因及び仕組みの解説まで書き込みいただき、今後の作業にあたりとても参考になりました。

この度はプログラムのご提供から、親切なサポートまで
大変お世話になりまして、重ね重ねありがとうございました。