私はプロではありませんが、PHPの周りを知っています。私はCodeigniterを初めて使用しています。Codeigniterフォーム投稿と検証
は、これらのチュートリアルを通過されて:http://net.tutsplus.com/articles/news/codeigniter-from-scratch-day-5-crud/
OK、私は編集ページに移動するユーザー名をクリックすると、ユーザーが一覧表示されますページ、そのページのビーイングのURLを持っている:ユーザー/ index.phpを/編集/ 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を/ユーザー/更新
私のコントローラは、次のとおりです。今の
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();
}
}
、私はちょうど私が私が(の$ this - > form_validation->場合を処理していないと思うユーザーが「名前」フォームの入力=名ID =名
の検証をテストしています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
はい、これでフォームのページがロード行います= "name"> – Mark
"serUserName"変数を定義していることを確認してください。 '$ data_user'の中の – Suleman
のように、あるユーザのデータを受け取った場合は、それをループしないでください。 –