いつもお世話になります。本日は、Codeigniterについてご教授お願いします。
開発環境
XAMPP for Windows(PHP7,mysql,Apache2.4)
IDE eclipse
前提・実現したいこと
Codeignitre3を勉強しています。
PHP(Codeignitre3)でイベント管理システムを作っています。
着手が簡単そうなユーザ登録機能から作り始めました。
「ユーザ種別」と「所属グループ」を名称(例えば、技術部や一般ユーザ)で表示したいです。
大変申し訳ないと思いますが教えていただけないでしょうか。
よろしくお願いします。
以下がソースです。
発生している問題・エラーメッセージ
(2)【保存】ボタンを押すと以下の画面になってしまいます。
URLも「http://localhost:8888/hogehoge/member/index.php/member/add」になってしまいます。
※C:\pleiades\xampp\htdocs\hogehoge\application\config\config.phpにて。
$config['base_url'] = 'http://localhost:8888/hogehoge/member/';
base_urlも変更済みです。
該当のソースコード
//application\views\member_add.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>ユーザ登録</title>
</head>
<body>
<h1>ユーザ登録</h1>
<?php echo form_open(); ?>
<table border="1">
<tr>
<th>氏名(必須)</th>
<td>
<?php echo form_error('name', '<p>', '</p>'); ?>
<?php echo form_input('name', set_value('name')); ?>
</td>
</tr>
<tr>
<th>ログインID(必須)</th>
<td>
<?php echo form_error('login_id', '<p>', '</p>'); ?>
<?php echo form_input('login_id', set_value('login_id')); ?>
</td>
</tr>
<tr>
<th>パスワード(必須)</th>
<td>
<?php echo form_error('login_pass', '<p>', '</p>'); ?>
<?php echo form_password('login_pass', set_value('login_pass')); ?>
</td>
</tr>
<tr>
<th>ユーザ種別(必須)<th>
<td>
<?php echo form_error('user_types', '<p>', '</p>'); ?>
<?php echo form_dropdown('user_types', $user_type); ?>
</td>
</tr>
<tr>
<th>所属グループ(必須)<th>
<td>
<?php echo form_error('groups', '<p>', '</p>'); ?>
<?php echo form_dropdown('groups', $group); ?>
</td>
</tr>
</table>
<p>
<?php echo form_submit('post', '保存'); ?>
</p>
<?php echo form_close(); ?>
</body>
</html>
//application\controllers\Member.php
<?php
class Member extends CI_Controller {
public function add() {
$this->load->model('users_model');
$this->load->helper('form');
$this->load->library('form_validation');
$this->form_validation->set_rules('name', '氏名(必須)', 'required');
$this->form_validation->set_rules('login_id', 'ログインID(必須)', 'required');
$this->form_validation->set_rules('login_pass', 'パスワード(必須)', 'required');
if ($this->form_validation->run()) {
$users['name'] = $this->input->post('name');
$users['login_id'] = $this->input->post('login_id');
$users['login_pass'] = $this->input->post('login_pass');
$users['created'] = date('Y-m-d H:i:s');
$this->Users_model->insert($users);
$this->load->view('member_add_done');
}
else {
$this->load->model('user_types_model');
$data['user_type'] = $this->user_types_model->find_all();
var_dump($data);
$this->load->model('groups_model');
$data['group'] = $this->groups_model->find_all();
var_dump($data['group']);
$this->load->view('member_add', $data);
}
}
}
//application\models\Users_model.php
<?php
class Users_model extends CI_Model {
public $id;
public $login_id;
public $login_pass;
public $name;
public $type_id;
public $group_id;
public $created;
public function find_all() {
$query = $this->db->query("SELECT * FROM users");
return $query->result('Users_model');
}
public function total_count() {
return $this->db->count_all('users');
}
public function insert($users) {
$this->db->insert('users', $users);
}
}
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
マニュアルにもありますが、値のリストは一次元配列でないと動きませんよ。
http://www.codeigniter.com/user_guide/helpers/form_helper.html
該当部分の抜粋
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.10%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2016/11/23 18:58
初心者で大変恐縮ではございますが、以下のモデルで一次元配列でクエリを取得する方法はありますでしょうか。度々すいません。
//application\models\Users_model.php
public function find_all() {
$query = $this->db->query("SELECT * FROM users");
return $query->result('Users_model');
}
2016/11/23 23:45 編集
あと、ドロップダウンにしたいのはusersじゃなくてuser_typesですよね?
public function find_all() {
$arrSelections = array();
$query = $this->db->query("SELECT * FROM user_type");
if($query->num_rows() === 0) {
return $arrSelections;
}
foreach ($query->result() as $row) {
$arrSelections[$row->id] = $row->type;
}
return $arrSelections;
}