回答(1件)

1

どのようにデバッグされていますか? たとえば 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); ?>

1人がナイス!しています

ありがとうございます!! 上記でやってみたところ、ミスもありつつ、 //抽出された値を $model_list配列 に格納 $model_list = array(); while($row = $stmt -> fetch(PDO::FETCH_ASSOC)){ $model_list[$row['id']] = $row['maker_name']; } のあとにvar_dumpで配列が入っているところまでは行きつきました。 が、そのあとも問題あるようです。。。