お世話になっております。
都道府県が選択されたとき、市区町村一覧を表示する(プルダウンの連動)
このページにある機能を実現したく、以下のコードを書いたのですが、動きませんでした。
php
1<?php 2// DB接続設定 3require_once 'config/define.php'; 4 5// 県名を取得 6$pref_sql = "SELECT * 7 FROM prefectures"; 8$pref_res = $conDB->pdoQuery($pref_sql); 9 10$pre = "<option value=''>都道府県を選択</option>"; 11foreach ($pref_res as $value) { 12 $pre .= "<option value='{$value[prefectures_id]}'>$value[prefectures_name]</option>"; 13} 14 15// 都道府県から市区町村を取得 16if($_GET['pref_code']){ 17 $pref_code = filter_input(INPUT_GET, 'pref_code'); 18 19 $sql = "SELECT * 20 FROM area 21 WHERE area_prefecture = '$pref_code' 22 ORDER BY area_id"; 23 $res = $conDB->pdoQuery($sql); 24 25 foreach ($res as $value) { 26 $area .= "<option value='{$value[area_id]}'>$value[area_name]</option>"; 27 } 28} 29 30// html読み込み 31include_once('signup.html');
html
1 2<!DOCTYPE html> 3<html lang="ja"> 4<head> 5 <meta charset="UTF-8"> 6 <title>Document</title> 7 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 8 <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 9 <script type="text/javascript"> 10 // ********** 都道府県から市区町村選択 ********** 11 $('#pref').change(function() { 12 $.get('signup.php?pref_code='+$(this).val(), function(data) { 13 $('#area').html(data); 14 }); 15 16 $('#area').val(''); 17 $('#area').selectmenu('refresh'); 18 }); 19 </script> 20</head> 21<body> 22 <form action="" method="post"> 23 <div> 24 <select name="pref" id="pref"> 25 <?=$pre?> 26 </select> 27 </div> 28 29 <div> 30 <select name="area" id="area"> 31 <option value="">選択してください</option> 32 <?=$area?> 33 </select> 34 </div> 35 </form> 36</body> 37</html>
$pre
はきちんと取得されて表示されているので、DBへの接続はできています。
また、 $pref_code
に直接数字を割り当てた場合も正しく表示されるので後半のSQLが間違っているということもないようです。
要するにGETの値が渡されていないということだと思うのですが、恥ずかしながらどこを変えれば値がちゃんと渡るのかが分かりません…。
参考サイトのデモのソースと見比べてみたのですが、わかりませんでした。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/10 06:04