• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Codeigniterでのviewへの受け渡し)

Codeigniterでのviewへの受け渡し

このQ&Aのポイント
  • Codeigniterを使用してデータベースからデータを取得し、viewに受け渡す方法が分からない。
  • データベースへの接続は成功しているが、viewにデータが受け渡せずエラーが発生している。
  • controllerとviewのコードを確認し、データの受け渡しに問題があることが分かった。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 View側で、$rowを参照していますが、 foreach( $query->result() as $row ){ $data['prefectures'] = array('id, prefecture_name,prefecture_name_en'); $this->load->view('tel2_view', $data); } なので、読み捨てられていますよ? Viewに渡しているのは、$dataです。

tajix14
質問者

お礼

ご回答頂き有難う御座います。 そのままではうまくいきませんでしたが、試行錯誤の後 下記の方法でうまくいきました。 お忙しいところご対応頂き有難う御座いました。 【Contrller】 <? class Tel5 extends CI_Controller{ function index() { // データベースを初期化(データの取得:ActiveRecord) $this->load->database(); // SQLの実行 $this->db->select('id, prefecture_name,prefecture_name_en'); $data['query'] = $this->db->get('prefectures'); // 結果を表示 $data['prefectures'] = array('id', 'prefecture_name','prefecture_name_en'); $this->load->view('tel5_view', $data); } } ?> 【view】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> </head> <body> <table width="700" border="1" cellspacing="2" cellpadding="2"> <tr> <th scope="col">id</th> <th scope="col">県名</th> <th scope="col">en</th> </tr> <?php foreach ($query->result() as $row):?> <tr> <td><?=$row->id?></td> <td><?=$row->prefecture_name?></td> <td><?=$row->prefecture_name_en?></td> </tr> <?php endforeach;?> </table> </body> </html>

tajix14
質問者

補足

早速のご回答有難うございます。 >なので、読み捨てられていますよ? 申し訳ございません。 いろいろWEBで調べてこのような記述が正と思っており、 ご指摘いただいたことにたいする修正をする知識を持っておりません。 大変お手数で恐縮ですがソースを修正いただけますと幸いです。 (当方趣味でやっており、プロではありません。大変お恥ずかしいお願いで恐縮です。よろしくお願いいたします。)

その他の回答 (1)

回答No.2

こんにちは。 Codeigniterを使った事がないのでアレなんですが・・・。 foreach( $query->result() as $row ){ $data['prefectures'] = array('id, prefecture_name,prefecture_name_en'); $this->load->view('tel2_view', $data); } を foreach( $query->result() as $row ){ $data['prefectures'][] = array('id' => $row['id'], 'prefecture_name' => $row['prefecture_name'], 'prefecture_name_en' => $row['prefecture_name_en']); $this->load->view('tel2_view', $data); } して、 <tr> <td><?=$row['id']?></td> <td><?=$row['prefecture_name']?></td> <td><?=$row['prefecture_name_en']?></td> </tr> を <?php foreach ($prefectures as $row):?> <tr> <td><?=$row['id']?></td> <td><?=$row['prefecture_name']?></td> <td><?=$row['prefecture_name_en']?></td> </tr> <?php endforeach;?> とかってすれば、出力されそうな気が・・・ムニャムニャ。 勝手にキーが変数になるのはどうなんかねぇ・・・? 独り言。

関連するQ&A