質問編集履歴

2 誤字

yclin_tagaya

yclin_tagaya score 19

2015/07/17 18:07  投稿

[Codeigniter]URL/セグメントについて
また質問させていただきました。
ページングについてですが、
xxx.com/admin/user_list
ページング機能で1ページにつき2人のユーザー情報が表示されるように。
それぞれリンクをつけ、クリックすると詳細ページに飛ばす
という機能を作ってみました。
xxx.com/admin/user_list にある詳細ページURLは
xxx.com/admin/user_detail/**$ID** となっております。
** $ID はデータベースのAUTO_INCREMENTです**
ただ次のページ、http://ci.local.com/admin/user_list/2 にアクセスすると、
ただ次のページ、xxx.com/admin/user_list/2 にアクセスすると、
詳細ページURLが xxx.com/admin/**user_list**/user_detail/$ID になってしまいます。
全ページを xxx.com/admin/user_detail/**$ID** にしたいですので、
解決策をご教示頂ければ幸いです。
どうぞよろしくお願い致します。
```lang-PHP
[config/route.php]
$route['admin/user_list/'] = "admin/user_list";
$route['admin/user_detail/(:any)'] = 'admin/user_detail/$1';
```
```lang-PHP
[controller/admin.php]
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller {
 public function __construct(){
   parent::__construct();
   $this->load->helper('url');
   $this->load->library('session');
   $this->load->database();
   $this->load->model('Abstruct');
   $this->load->helper('form');
   $this->load->library('pagination');
   $this->load->library('table');
   
   $base_url = base_url();
 }
  ・・・
   public function user_list(){
       $base_url = base_url();
       $of = $this->uri->segment(3);
       $lim = '2';
       $data['records']=$this->db->get('user',$lim,$of)->result_array();
       $config['base_url']= $base_url.'/admin/user_list';
       $config['total_rows']= $this->db->count_all_results('user');
       $config['per_page']= $lim;
       $config['use_page_numbers'] = TRUE;
       $this->pagination->initialize($config);
       $this->load->view('admin/user_list',$data);   
     }
     
   public function user_detail(){
     
       $id = $this->uri->segment(3);
       $sql = "select * from user where id = ". $id;
       $user_detail = $this->db->query($sql);
     
       $data = array();
       $this->table->set_heading('ID', 'FB_NAME', 'TYPE', '直近診断時間');
       foreach($user_detail -> result() as $row){
       $this->table->add_row(
               array (
                     $row -> id,
                     $row -> name,
                     $row -> type,
                     $row -> create_date));
             }         
     $data = $this->table->generate();
     echo $data;
   }
}
```
```lang-PHP
[view/user_list.php]
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>hogehoge</title>
</head>
<body>
   <table border="1">
     <tr><td>ユーザー一覧</td></tr>
     <?php foreach ($records as $row):
       $id = $row['id'];
       $name = $row['name'];
     ?>
     <tr>
       <td> <a href = user_detail/<?= $id ?> > <?=$name?> </a>
       </td>
     </tr>
    <?php endforeach; ?>
   
   </table>
   <?php echo $this->pagination->create_links(); ?>
</body>
</html>
```
  • PHP

    24056 questions

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

  • CodeIgniter

    290 questions

    CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

1 誤字の修正

yclin_tagaya

yclin_tagaya score 19

2015/07/17 17:47  投稿

[Codeigniter]URL/セグメントについて
また質問させていただきました。
ページングについてですが、
xxx.com/admin/user_list
ページング機能で1ページにつき2人のユーザー情報が表示されるように。
それぞれリンクをつけ、クリックすると詳細ページに飛ばす
という機能を作ってみました。
xxx.com/admin/user_list の詳細ページURLは
xxx.com/admin/user_list にある詳細ページURLは
xxx.com/admin/user_detail/**$ID** となっております。
** $ID はデータベースのAUTO_INCREMENTです**
ただ次のページ、http://ci.local.com/admin/user_list/2 にアクセスすると、
詳細ページURLが xxx.com/admin/**user_list**/user_detail/$ID になってしまいます。
全ページを xxx.com/admin/user_detail/**$ID** にしたいですので、
解決策をご教示頂ければ幸いです。
どうぞよろしくお願い致します。
```lang-PHP
[config/route.php]
$route['admin/user_list/'] = "admin/user_list";
$route['admin/user_detail/(:any)'] = 'admin/user_detail/$1';
```
```lang-PHP
[controller/admin.php]
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller {
 public function __construct(){
   parent::__construct();
   $this->load->helper('url');
   $this->load->library('session');
   $this->load->database();
   $this->load->model('Abstruct');
   $this->load->helper('form');
   $this->load->library('pagination');
   $this->load->library('table');
   
   $base_url = base_url();
 }
  ・・・
   public function user_list(){
       $base_url = base_url();
       $of = $this->uri->segment(3);
       $lim = '2';
       $data['records']=$this->db->get('user',$lim,$of)->result_array();
       $config['base_url']= $base_url.'/admin/user_list';
       $config['total_rows']= $this->db->count_all_results('user');
       $config['per_page']= $lim;
       $config['use_page_numbers'] = TRUE;
       $this->pagination->initialize($config);
       $this->load->view('admin/user_list',$data);   
     }
     
   public function user_detail(){
     
       $id = $this->uri->segment(3);
       $sql = "select * from user where id = ". $id;
       $user_detail = $this->db->query($sql);
     
       $data = array();
       $this->table->set_heading('ID', 'FB_NAME', 'TYPE', '直近診断時間');
       foreach($user_detail -> result() as $row){
       $this->table->add_row(
               array (
                     $row -> id,
                     $row -> name,
                     $row -> type,
                     $row -> create_date));
             }         
     $data = $this->table->generate();
     echo $data;
   }
}
```
```lang-PHP
[view/user_list.php]
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>hogehoge</title>
</head>
<body>
   <table border="1">
     <tr><td>ユーザー一覧</td></tr>
     <?php foreach ($records as $row):
       $id = $row['id'];
       $name = $row['name'];
     ?>
     <tr>
       <td> <a href = user_detail/<?= $id ?> > <?=$name?> </a>
       </td>
     </tr>
    <?php endforeach; ?>
   
   </table>
   <?php echo $this->pagination->create_links(); ?>
</body>
</html>
```
  • PHP

    24056 questions

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

  • CodeIgniter

    290 questions

    CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る