2017-12-14 17 views
0

私は、表示されている同じページの一部の情報をデータベースから更新する必要がある問題に悩まされています。同じページ内のデータを取得して更新するCodeIgniter

このケースでは、フォームに付属のインデックスページのウェブサイトから「グローバル設定」を取得しています。私が何を意味しているかを理解することをより明確にするための写真がここにあります。

Built with CodeIgniter Global Settings Built with CodeIgniter Global Settings

あなたは、データベースから値を確認するために、私はボタンを作成し、私はそれを可能にした見ることができるように、問題は、私はそこからそれを更新するために、どのようにそれを把握することはできませんということです。誰かがアイデアを提案できますか?ここで

は私のコントローラである:ここでは

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

class Settings extends Admin_Controller { 

    public function index() 
    { 

     $this->form_validation->set_rules('website_favicon', 'Favicon', 'trim|required|min_length[4]'); 
     $this->form_validation->set_rules('website_logo', 'Logon', 'trim|required|min_length[4]'); 
     $this->form_validation->set_rules('website_name', 'Website Name', 'trim|required|min_length[4]'); 
     $this->form_validation->set_rules('website_credits', 'Credits', 'trim|required|min_length[4]'); 
     $this->form_validation->set_rules('website_credits_link', 'Credits Link', 'trim|required|min_length[4]'); 
     $this->form_validation->set_rules('website_copyright', 'Copyright', 'trim|required|min_length[4]'); 

     if($this->form_validation->run() == FALSE){ 

      // Get Current Subject 
      $data['item'] = $this->Settings_model->get_website_data(); 
      //Load View Into Template 
      $this->template->load('admin', 'default', 'settings/index', $data); 

     } else { 

      // Create website settings 
      $data = array(
       'website_favicon' => $this->input->post('website_favicon'), 
       'website_logo'  => $this->input->post('website_logo'), 
       'website_name'  => $this->input->post('webiste_name'), 
       'website_credits' => $this->input->post('website_credits'), 
       'website_credits_link' => $this->input->post('website_credits_link'), 
       'website_copyright' => $this->input->post('website_copyright'), 
      ); 

      // Update User 
      $this->Settings_model->update($id, $data); 

      // Activity Array 
      $data = array(
       'resource_id' => $this->db->insert_id(), 
       'type'  => 'website settings', 
       'action'  => 'updated', 
       'user_id'  => $this->session->userdata('user_id'), 
       'message'  => 'User (' . $data["username"] . ') updated the website settings' 
      ); 

      // Add Activity 
      $this->Activity_model->add($data); 

      //Create Message 
      $this->session->set_flashdata('success', 'Website setting has been updated'); 

      //Redirect to Users 
      redirect('admin/settings'); 
     } 

    } 

} 

は私のモデルである:

<?php 

class Settings_model extends CI_MODEL 
{ 

    function __construct() 
    { 
     parent::__construct(); 
     $this->table = 'website_settings'; 
    } 


    public function update($id, $data) 
    { 
     $this->db->where('id', $id); 
     $this->db->update($this->table, $data); 
    } 


    public function get_website_data() 
    { 
     $this->db->select('*'); 
     $this->db->from($this->table); 
     $this->db->where('id', 1); 
     $this->db->limit(1); 

     $query = $this->db->get(); 

     if ($query->num_rows() == 1) { 
      return $query->row(); 
     } else { 
      return false; 
     } 

    } 

} 

、ここでは、フォームと私のビュー(index.phpを)です:

<h2 class="page-header">Website Settings</h2> 
<?php if($this->session->flashdata('success')) : ?> 
<div class="alert alert-success alert-dismissible"> 
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
<h4><i class="icon fa fa-check"></i> Alert!</h4> 
<?php echo $this->session->flashdata('success') ?></div> 
<?php endif; ?> 

<?php if($this->session->flashdata('error')) : ?> 
<div class="alert alert-danger alert-dismissible"> 
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> 
<h4><i class="icon fa fa-ban"></i> Alert!</h4> 
<?php echo $this->session->flashdata('error') ?></div> 
<?php endif; ?> 

<?php echo validation_errors('<p class="alert alert-danger">'); ?> 
<?php echo form_open('admin/settings/index/'.$item->id); ?> 
    <!-- Website Favicon --> 
    <div class="form-group"> 
     <?php echo form_label('Website Favicon', 'title'); ?> 
     <?php 
      $data = array(
       'name' => 'website_favicon', 
       'id' => 'website_favicon', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_favicon 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website Logo --> 
    <div class="form-group"> 
     <?php echo form_label('Website Logo', 'website_logo'); ?> 
     <?php 
      $data = array(
       'name' => 'website_logo', 
       'id' => 'website_logo', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_logo 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website Name --> 
    <div class="form-group"> 
     <?php echo form_label('Website Name', 'website_name'); ?> 
     <?php 
      $data = array(
       'name' => 'website_name', 
       'id' => 'website_name', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_name 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website Credits --> 
    <div class="form-group"> 
     <?php echo form_label('Website Credits to', 'website_credits'); ?> 
     <?php 
      $data = array(
       'name' => 'website_credits', 
       'id' => 'website_credits', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_credits 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website Credits Link --> 
    <div class="form-group"> 
     <?php echo form_label('Website Credits to Link', 'website_credits_link'); ?> 
     <?php 
      $data = array(
       'name' => 'website_credits_link', 
       'id' => 'website_credits_link', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_credits_link 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website Copyright --> 
    <div class="form-group"> 
     <?php echo form_label('Copyrights', 'website_copyright'); ?> 
     <?php 
      $data = array(
       'name' => 'website_copyright', 
       'id' => 'website_copyright', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_copyright 
      ); 
     ?> 
     <?php echo form_input($data); ?> 
    </div> 
    <!-- Website First Ad --> 
    <div class="form-group"> 
     <?php echo form_label('Ad One', 'website_first_ad'); ?> 
     <?php 
      $data = array(
       'name' => 'website_first_ad', 
       'id' => 'website_first_ad', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_first_ad 
      ); 
     ?> 
     <?php echo form_textarea($data); ?> 
    </div> 
    <!-- Website Second Ad --> 
    <div class="form-group"> 
     <?php echo form_label('Ad Two', 'website_second_ad'); ?> 
     <?php 
      $data = array(
       'name' => 'website_second_ad', 
       'id' => 'website_second_ad', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_second_ad 
      ); 
     ?> 
     <?php echo form_textarea($data); ?> 
    </div> 
    <!-- Website Third Ad --> 
    <div class="form-group"> 
     <?php echo form_label('Ad Three', 'website_third_ad'); ?> 
     <?php 
      $data = array(
       'name' => 'website_third_ad', 
       'id' => 'website_third_ad', 
       'maxlength' => '100', 
       'class'  => 'form-control', 
       'value'  => $item->website_third_ad 
      ); 
     ?> 
     <?php echo form_textarea($data); ?> 
    </div> 

    <?php echo form_submit('mysubmit', 'Update Website', array('class' => 'btn btn-primary')); ?> 
<?php echo form_close(); ?> 

感謝助けるために。

答えて

0

ボタンをクリックすると、ajaxコールをバインドしてコントローラの更新アクションにデータを送信し、応答を処理して同じページに関連するメッセージを表示することができます。

サンプルAJAX呼び出し

$.ajax({ 
    url:'settings/update',//controller action 
    type:'POST', 
    dataType:'JSON', 
    data:{'data':data,'id':id},//form data you need to upate with the id 
    success:function(response) { 
     //show success message here 
    }, 
    error:function(response) { 
     //show error message here 
    } 
}); 

は、この情報がお役に立てば幸いです。

0

データがコントローラを介して転記されているかどうかを確認してください。その後、後に提出した値を保持するためにあなたの入力フィールドにSET_VALUEを使用

CONTROLLER

public function index(){ 

     if($this->input->post()){ 
      //set rules for form validation 
      if($this->form_validation->run() !== FALSE){ 
       //then update 
      } 
     } 

     //your views, data or any other things you do 
    } 

VIEW

 echo form_input('name', set_value('name')); 
関連する問題