どのようにデバッグされていますか?
たとえば select.php でPOSTデータで受け取っているのを固定値にして、直接select.phpにアクセスして期待したjsonデータが戻ってくるかなどはチェックされていますか?
<?php
//直接のページ遷移を阻止・・・をカット
// $request = isset($_SERVER['HTTP_X_REQUESTED_WITH']) ? strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) : '';
// if($request !== 'xmlhttprequest') exit;
//DBへの接続
//本来は db_connect関数 を作成して、DRYにした方が良いです。
try {
$dsn = 'mysql:host=localhost;dbname=car_model;charset=utf8';
$user = 'username';
$pass = 'password';
$pdo = new PDO($dsn, $user, $pass, array(PDO::ATTR_EMULATE_PREPARES => false));
}
catch (Exception $e) {
exit('データベース接続失敗'.$e->getMessage());
}
//Ajaxで渡ってきた値をもとに modelテーブル から該当する model を抽出
// リテラルに変更する
// $maker_no = $_POST['maker_no'];
$maker_no = "1";
$sql = 'SELECT * FROM model WHERE maker_id = :maker_id';
$stmt=$pdo->prepare($sql);
$stmt->bindValue(':maker_id', (int)$maker_no, PDO::PARAM_INT);
$stmt->execute();
//抽出された値を $model_list配列 に格納
$model_list = array();
while($row = $stmt -> fetch(PDO::FETCH_ASSOC)){
$model_list[$row['id']] = $row['maker_name'];
}
// 読み易いようにプレーンテキストで返す
// header('Content-Type: application/json');
header('Content-Type: text/plain');
//json形式で index.php へバックする
echo json_encode($model_list);
?>