質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

1回答

2620閲覧

PHPで郵便番号入力し住所検索するプログラム

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2020/07/06 14:21

index.phpのブラウザで表示した郵便番号を入力して送信ボタンを押したのち、KEN.CSVファイルの統計データより住所を自動的に
「住所:OOO」に表示するプログラムを作成したいです。
Htmlの表示、郵便検索のfunction定義、index.phpからAddressResearch.phpへの遷移まではできたと思っているのですが、
functionの呼び出しと実際の住所を表示するプログラムまでが構築できておらず、ただ遷移しただけになってます。
functionで計算した戻り値をindex.phpに表示させる必要があると思うのですが、あまりうまくいってない状況です。
これから実際にindex.php画面の「住所:OOO」と表示させるためにはどのようなコードを追加もしくは修正すればうまく回りますでしょうか?
お手数おかけしますが、ご教授お願いしたくよろしくお願い致します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
住所データのリンク先(https://www.post.japanpost.jp/zipcode/dl/oogaki-zip.html)
作成したいプログラム:郵便番号(7桁)で検索し、ヒットした行の7.都道府県名、8.市区町村名、9.町域名を表示する。

index.php <?php require_once('AdressResearch.php'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>住所検索プログラム</title> </head> <body> <div id="Container"> <form id="sample" method="get" action="AdressResearch.php"> 郵便番号: <input name="param" id="param" type="text" maxlength="7" size="7" pattern="^[0-9]{7}$"> <input type="submit" id="submit" value="送信"> </form> <div id="result" style="min-height: 24px; opacity: 1; visibility: visible;"> <p>住所:<?php echo getAddress() ?></p> </div> </div> </body> </html>
AddressResearch.php <?php //郵便番号の取得 $postnum=$_GET["param"]; function getAddress($postnum) { // 郵便番号CSV Open $file_name = 'KEN_ALL.CSV'; $fp = @fopen($file_name, 'r'); $i = 0; while (($data = fgetcsv($fp, 200, ',')) !== FALSE) { //fgetcsv( ファイルハンドル,(サイズ,区切り文字,囲み文字 )) // 郵便番号 $post[$i]['postnum'] = $data[2]; if ($postnum == $post[$i]['postnum']) { // 都道府県 $post[$i]['state'] = mb_convert_encoding($data[6], 'UTF-8', 'SJIS'); // 市区町村 $post[$i]['city'] = mb_convert_encoding($data[7], 'UTF-8', 'SJIS'); // 町名 $post[$i]['street'] = mb_convert_encoding($data[8], 'UTF-8', 'SJIS'); // 半角英数字へ置換 $post[$i]['street'] = mb_convert_kana($data[$i]['street'], 'a', 'UTF-8'); // 以下に掲載がない場合、(次のビルを除く)(地階・階層不明)などを削除 $post[$i]['street'] = preg_replace('/以下に掲載がない場合|(.*)/', '', $data[$i]['street']); return $post[$i]; } $i++; } fclose($fp); } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

これから実際にindex.php画面の「住所:OOO」と表示させるためにはどのようなコードを追加もしくは修正すればうまく回りますでしょうか?

知らなきゃいけない要素技術は

  • POST/GET
  • 関数の利用
  • ファイルの取扱方法
  • csv データの取扱方法
  • csv データから目的の項目を抽出する方法
  • データの表示(文字コードの変換を含む)

程度ですが、現状一つも理解できていないようなので、ちゃんと基礎から学習したほうが良いです。

プログラムはコピペで作るものじゃないです。

投稿2020/07/06 19:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/07/07 11:42

程度ですがと、自分の主観で言わない方がよいかと思います。全て基礎できてれば、この質問サイトにも来てないです。php触って1週間もたってないので初心者マークつけて質問しましたが、この言い方はないかと思います。この回答ならわざわざ回答して貰えてなくて結構です。
退会済みユーザー

退会済みユーザー

2020/07/07 12:51

回答ちゃんと読んだほうが良いかと。 記述されている内容が要件の全てであれば、別に主観でもなんでもないです。回答の要素技術で実現可能です。 誤解しているようですが、「程度」というのは範囲を指します。要件次第で、回答に書いた以外の要素技術が必要になります。 *質問では、画面遷移させる前提になってますが、コード的に画面遷移無しで表示したいっぽいことが書かれています。その場合、ajax が必要です。 また、再度書きますが、基礎から学習したほうが良いです。 体系的な学習をしていないので、コードが継ぎ接ぎです。 継ぎ接ぎコードの先にまともな学習成果はないです。 QA サイトでは、体系的な学習は無理なので、もう少し学習が進んでから、わからないことを点として整理して聞くのが利用方法として適切です。
退会済みユーザー

退会済みユーザー

2020/07/07 13:18

質問ちゃんとよんだほうが良いかと。 画面遷移させて表示したいのでどうしたらいいですかという質問なので画面遷移させるプログラムの書き方を聞いております。そして何より学習方法については聞いてないです。
退会済みユーザー

退会済みユーザー

2020/07/07 13:26

では、全部捨てて設計から見直したほうが良いです。 全部間違っているので。 学習の方法は親切のつもりだったんですけどねぇ。。。 3ヶ月後にでも見直してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問