[Codeigniter-users] 編集について

Back to archive index

牧尾竜一 ryuic****@jom*****
2008年 7月 12日 (土) 10:41:18 JST


JOMRです。

編集については大分理解出来てきました。
昨日、kunitsujiさんが書いてくださった記述に中にあった
エラー表示の為のしくみについてなのですが、下記のようにしてみました。

やり方、考え方がおかしいかも知れませんが、とりあえず編集の入力画面では表
示しました。
ただ、編集確認時には
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: msg
Filename: views/customer_edit_confirm.php
Line Number: 15

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: err_flag
Filename: views/customer_edit_confirm.php
Line Number: 18
とエラーになってしまいます。
やはり書き方が間違っているのでしょうか?


class Customer extends Controller {

	var $limit = 5;
	var $edit_message = '入力してください';
	var $edit_confirm_message = '以下の内容でよろしいですか?';
	var $edit_error_message = '<span style="color:red">指定のIDではデータが
見つかりませんでした。</span>';

    function edit($cu_id = '')
    {
        //まず入力をさせる
        $cu_id = intval($cu_id);
        $this->db->where(array('cu_id'=>($cu_id)));
        $query = $this->db->get('customer');
        if ($query)
        {
            $row                = $query->row();
            $data['cu_id']      = $row->cu_id;
            $data['cu_name']    = $row->cu_name;
            $data['cu_kana']    = $row->cu_kana;
            $data['cu_tel']     = $row->cu_tel;
            $data['cu_fax']     = $row->cu_fax;
            $data['cu_mail']    = $row->cu_mail;
            $data['biko']       = $row->biko;
            $data['datetime']   = $row->datetime;
            $data['msg']        = $this->edit_message;
            $data['err_flag']   = FALSE;    //エラーはない
        }
        else
        {
            //指定のIDが見つからなかった場合
            $data['msg'] = $this->edit_error_message;
            $data['err_flag']   = TRUE;     //エラーとする
        }
        $this->load->view('customer_edit', $data);
    }

    //edit_confirm
    function edit_confirm()
    {
        if ($this->input->post('submit') == '戻る')
        {
            //入力画面へ戻る
            $cu_id = intval($cu_id);
            $this->db->where(array('cu_id'=>($cu_id)));
            $query = $this->db->get('customer');
            if ($query)
            {
                $row                = $query->row();
                $data['cu_id']      = $row->cu_id;
                $data['cu_name']    = $row->cu_name;
                $data['cu_kana']    = $row->cu_kana;
                $data['cu_tel']     = $row->cu_tel;
                $data['cu_fax']     = $row->cu_fax;
                $data['cu_mail']    = $row->cu_mail;
                $data['biko']       = $row->biko;
                $data['datetime']   = $row->datetime;
                $data['msg']        = $this->edit_confirm_message;
                $data['err_flag']   = FALSE;    //エラーはない
            }
            else
            {
                //指定のIDが見つからなかった場合
                $data['msg'] = $this->edit_error_message;
                $data['err_flag']   = TRUE;     //エラーとする
            }
            $this->load->view('customer_edit', $data);
        }
        else
        {
            $data = array(
                'cu_id'   => $this->input->post('cu_id'),
                'cu_name' => $this->input->post('cu_name'),
                'cu_kana' => $this->input->post('cu_kana'),
                'cu_tel'  => $this->input->post('cu_tel'),
                'cu_fax'  => $this->input->post('cu_fax'),
                'cu_mail' => $this->input->post('cu_mail'),
                'biko'    => $this->input->post('biko'),
                'datetime' => date('Y-m-d H:i:s', time()),//更新日付に変
えてみる
            );
		//dataの内容確認時はこのしたの記述を有効にする
		//var_dump($data);
		
		            $this->load->view('customer_edit_confirm', $data);
        }
    }
}

kunitsuji さんは書きました:
>  kunitsujiです。
> 
> <Aタグは、リンクの設定ですね。
> そこをクリックしたときに移動します。INPUTのテキストボックスに入れておか
> ないと、POSTで移動しません。
> 
> 
>> JOMRです。
>>
>>
>> kunitsuji さんは書きました:
>>>  kunitsujiです。
>>>
>>> 一番下の部分がなぜか空欄になっていますね。
>>> <input type="hidden" name="cu_id" value="" />
>>> これです。つまりここにIDがないために、ID=0のユーザーに更新かけに行ってい
>>> ないので無視されているということでしょうね。
>> ビューの customer_edit.php を
>> <tr>
>>    <td>顧客ID</td>
>>    <td><input type="hidden" name="cu_id"
>> value="<?=form_prep($cu_id);?>">[<?=form_prep($cu_id);?>]</td>
>> としたら無事編集が完了するようになりました。
>> 以前は以下のようになっておりました。
>>
>> <tr>
>>    <td>顧客ID</td>
>>    <td><a name="cu_id"
>> value="<?=form_prep($cu_id);?>">[<?=form_prep($cu_id);?>]</a></td>
>> </tr>
>>
>> inputタグ と aタグとでは何が違うのでしょうか?
>> aタグではPOSTする事ができないんでしょうか?
>>
>>
>>> ここまでわかってきたら、後はなぜhiddenのcu_idに値が渡っていないかを見つ
>>> けるのはできそうですね!
>>>
>> _______________________________________________
>> Codeigniter-users mailing list
>> Codei****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
> 
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
> 
> 
> No virus found in this incoming message.
> Checked by AVG - http://www.grisoft.jp 
> Version: 8.0.138 / Virus Database: 270.4.7/1545 - Release Date: 2008/07/10 18:43
> 
> 
> 




Codeigniter-users メーリングリストの案内
Back to archive index