サポート » プラグイン » Contact Form7 の住所欄に郵便番号から住所を自動入力

  • 解決済 cozy-koji

    (@cozy-koji)


    お世話になります。
    Contact Form7を使用してメールフォームを設けています。
    より使用勝手を向上させたく郵便番号から住所を自動入力させようと思っているのですが、上手く反映されずに困っています。

    現在の状況です。
    ①AjaxZip2をダウンロード後、theme/※hogehoge/ の直下に丸ごとアップ

    ②Index.phpの /body 直前に

    <link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” type=”text/css” />
    <script type=”text/javascript” src=”<?php bloginfo(‘template_url’) ?>/ajaxzip2/ajaxzip2.js” charset=”UTF-8″></script>
    <script type=”text/javascript”>
    //<![CDATA[
    jQuery(function(){
    AjaxZip2.JSONDATA = “<?php bloginfo(‘template_url’) ?>/ajaxzip2/data”;
    jQuery(‘#zip’).keyup(function(event){
    AjaxZip2.zip2addr(this,’pref’,’addr’);
    })
    })
    //]]>
    </script>

    を設置

    ③フォームの設定を行う
    郵便番号 [text* zip id:zip]
    都道府県 [text* pref id:pref]
    住所 [text* addr id:addr]

    ——————————————————

    私が推測してみた原因ですが
    ②の置き場所がわるいのでしょうか? Head内などにも置いてみましたが反応はありません。

    設置されている方や詳しい方がいらっしゃればご教示お願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • kz

    (@kz)

    以下を確認しよう!

    ・(2)のコードより前に jquery を読み込んでいるか
    ・ajaxzip2.js は html のソースで指定した部分にあるか
     wp-content/themes/※hogehoge/ajaxzip2/ajaxzip2.js
    ・テーマは子テーマじゃないこと
     子テーマだったら ‘template_url’ を ‘stylesheet_directory’ に変更

    #Deja vu, so many lies. Familiar spirits behind your eyes.

    cozy-koji

    (@cozy-koji)

    お世話になります。

    ・(2)のコードより前に jquery を読み込んでいるか

    → /head前に
    ・(2)のコードより前に jquery を読み込んでいるか
    <?php wp_enqueue_script(‘jquery’); ?>
    <?php wp_enqueue_script(‘ajaxzip2’, ‘http://※hogehoge/wp-content/themes/※hogehoge/ajaxzip2/ajaxzip2.js’); ?>
    を記入しています。

    ・ajaxzip2.js は html のソースで指定した部分にあるか
     wp-content/themes/※hogehoge/ajaxzip2/ajaxzip2.js

    → これも間違いなく置いています。

    ・テーマは子テーマじゃないこと
     子テーマだったら ‘template_url’ を ‘stylesheet_directory’ に変更

    → これの意味が分かりません(勉強不足です)
    ちなみにテーマはオリジナルで制作したものでindex.php に書き込んでいます。

    shokun0803

    (@shokun0803)

    特に問題がなけれればサイトURLを提示して見てもらうと早いかも。ローカルテストとかじゃ無理だけども…

    kz

    (@kz)

    テーマの functions.php に以下を追加:

    add_action( 'wp_print_scripts', 'my_print_scripts' );
    function my_print_scripts() {
      wp_enqueue_script( 'jquery' );
      wp_enqueue_script(
        'ajaxzip2',
        get_bloginfo( 'stylesheet_directory' ) . '/ajaxzip2/ajaxzip2.js',
        array( 'jquery' ), false, true
      );
    }
    ?>

    index.php の body 閉じタグ前に以下を記述

    <script type="text/javascript">
      //<![CDATA[
      jQuery(function(){
        AjaxZip2.JSONDATA = "<?php bloginfo('template_url') ?>/ajaxzip2/data";
        jQuery('#zip').keyup(function(event){
          AjaxZip2.zip2addr(this,'pref','addr');
        });
      });
      //]]>
    </script>

    で、どうでしょう。

    cozy-koji

    (@cozy-koji)

    テーマがオリジナルなため functions.php を設けていません。
    模様替えもしないつもりのなで不便は感じていません。
    つまりindex.phpとstyle.cssのみの構成なんです。

    これでは出来ないのでしょうか?

    お世話になっています。
    随分とたちましたがまだ諦めずに挑戦しているのですがダメな状態です。
    functions.php を立ち上げて ご教示の分を追加記入
    index.php の body閉じタグ直前にも記入しておりますが
    うんともすんとも言いません。
    他に考えられる部分は有るのでしょうか?

    通りすがりです。
    自分もJavaScript 等が動かず困った時にはよくやるのですが、

    • 「そのページのソースをtest.html 等として保存して、先ずそのtest.htmlで動くようになるまでソースをいじる」
    • 「サンプルコード等があれば、sample.html等として作って、先ずこれで動く事を確認する」

    等というやり方を行ってみると、早く解決できるかもしれません。

    kzさんの
    ‘index.php の body 閉じタグ前に以下を記述’
    を追加すれば動きました。(functionは追加せず)

    どうもありがとうございました。

    tomohiroさんの意見も参考にさせていただきます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「Contact Form7 の住所欄に郵便番号から住所を自動入力」には新たに返信することはできません。