1

私はCodeigniterフレームワークを使用してスキルを開発しています。私はすでにデータを表示してデータベースに挿入しましたが、データを更新するのはもっと難しいと感じています。私が見たほとんどのチュートリアルは、データベースから選択したIDを取得してフォームフィールドにエコーするのではなく、コードに値を入力しています。これまでのところ私は持っています:

news_model:

function editArticle($data) {
        $data = array(
                       'title' => $title,
                       'content' => $content,
                       'author' => $author
                    );

        $this->db->where('id', $id);
        $this->db->update('news', $data, array('id' =>$id));

    }

コントローラ:

    public function update_entry() {
        //load the upate model
        $this->load->model('update_model');

        //get the article from the database
        $data['news'] = $this->news_model->get_article($this->uri->segment(4));

        // perform validation on the updated article so no errors or blank fields
        $this->load->library('form_validation');

        $this->form_validation->set_rules('title', 'Title', 'trim|required');
        $this->form_validation->set_rules('content', 'Content', 'trim|required');
        $this->form_validation->set_rules('author', 'Author', 'trim|required');

        // If validation fails, return to the edit screen with error messages
        if($this->form_validation->run() == FALSE) {

            $this->index();

        }else{
            //update the news article in the database
            if($query = $this->update_model->update()) {

        }else{
            redirect('admin/edit');
        }
    }
}

意見:

        <?php echo form_open('admin/edit/edit_article'); ?>

        <?php echo form_input('title', set_value('title', 'Title')); ?><br />
        <?php echo form_textarea('content', set_value('content', 'Content')); ?><br />
        <?php echo form_input('author', set_value('author', 'Author')); ?>
        <?php echo form_submit('submit', 'Edit Article'); ?>
        <?php if (isset($error)){echo "<p class='error'>$error</div>";
        }?>
        <?php echo validation_errors('<p class="error">' );?>
         <?php echo form_close(); ?> 

1)データをエコーアウトして(ユーザーが表示されている記事ビューから編集ボタンをクリックしたときから)そのIDを取得し、編集ページのテキストフィールドに表示する方法がわかりません。

2)次に、ユーザーが更新されたデータを送信してデータベースに投稿するために?

私のコントローラー/ビューファイルの残りの部分を構造化するためのガイダンスやヘルプは、1日以上これに取り組んでいるのでありがたいです!

ありがとうございました。

4

1 に答える 1

0

ビューのすべてのコードを提供していないため、どれだけ正しく、どれだけ間違っているかはわかりませんが、私が見ることができるいくつかのことについて言及します-

現在のフィールド$this->load->view('edit', $data);コンテンツ$data.

フォーム フィールドを事前設定するには、現在のフィールド値を のset_value()ような2 番目のパラメータに入力しますset_value('title', $article->title)

モデルは、送信されたフォーム ( $this->input->post) を処理し、モデルで更新クエリを呼び出す必要もあります。

(CodeIgniter のドキュメントはこれに関してはあまり良くないと言わざるを得ません - Form HelperForm Validation Classのドキュメントを調べ、 Views (上記のリンク)、 Controllers、およびModels (さらに 1 つまたは 2 つ) を追跡する必要があります。他の人、私は不思議に思うべきではありません))。

于 2012-09-06T15:04:59.393 に答える