私はプロではありませんが、PHP の使い方は知っています。Codeigniter は初めてです。
これらのチュートリアルを行っています: http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-5-crud/
ユーザー名をクリックすると編集ページに移動します。そのページの URL は index.php/users/edit/1 (1 はユーザー ID) です。
編集ページにはフォームがあります。このフォームにはいくつかのパーツが含まれており、各パーツは DB 内の異なるテーブルから入力されます。したがって、編集用のコントローラーは次のとおりです。
function edit() {
//load model
$this->load->model('users_model');
//assign user data from DB
$data['data_user'] = $this->users_model->getUser($this->uri->segment(3));
//get users Password, using username from above
$data['data_user_password']= $this->users_model->getUserPassword($data['data_user'][0]->UserName);
$data['page_content'] = 'pages/users_edit';
$this->load->view('template/template', $data);
}
注意:
$data['data_user']
名前、ユーザー名、電子メールなどのユーザーデータが含ま
$data['data_user_password']
れています別のテーブルからのユーザーパスワードが含まれています
次に、users_edit.php でフォームに入力できます。これはすべて正常に機能します。次のようにして、このデータにアクセスしています。
if (is_array($data_user)) {
foreach($data_user as $user)
{
$userID = $user->id;
$userName = $user->Name;
$userUserName = $user->UserName;
$userMail = $user->Mail;
$userDepartment = $user->Department;
$userWorkPhone = $user->WorkPhone;
$userHomePhone = $user->HomePhone;
$userMobile = $user->Mobile;
}
}
//user password
if (is_array($data_user_password)) {
foreach($data_user_password as $user)
{
$userPassword = $user->value;
}
}
Name:
<?php echo form_input('name', set_value('name', $userName), 'id="name" class="inputLong"'); ?>
投稿するとき、次の場所にデータを送信しています: index.php/users/update
これまでのところ、このページのコントローラーは次のとおりです。
function update() {
echo '<pre>';
print_r($_POST);
echo '</pre>';
//exit();
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'trim|required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('pages/users_edit');
}
else
{
$this->index();
}
}
今のところ、フォーム入力=名前ID=名前のユーザー「名前」の検証をテストしています
if ($this->form_validation->run() == FALSE) の部分を正しく処理していないと思います。フォームにデータが含まれている場合、渡されてインデックスにリダイレクトされます。名前を空白のままにしておくと、そうではありません編集ページを正しく処理するか、または私にはわかりませんが、何かが正しくありません.. post 配列を使用してページがリロードされており、関数 edit() で行ったように $data を渡していないためだと思います。
フォーム ページに戻ると、validation_errors が表示されているはずです。
名前フィールドは必須です。
これは正しいですが、事前に入力する必要がある残りのフィールドでは、PHP エラーが表示されます。
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: userUserName
Filename: pages/users_edit.php
Line Number: 50