drawinggravity
drawinggravity

Reputation: 1

Unable to pass data from controller to view in codeigniter

I'm having issues passing data from my controller to my view. I have a contenteditable div that I am saving the contents of to my database; I want to then display that in the view.

My controller

    {
    function __construct(){
        parent::__construct();
        $this->load->database();
        $this->load->model('view_data');
        $data = array();
    }

    public function index(){
        $data['contactMe'] = $this->input->post('data');

        $this->db->update('content', $data); 

        $results = $this->view_data->loadData();

        $data['contactMeData'] = $results;

        $this->load->view('pages/home', $data);
    }

}

My model

<?php

class View_data extends CI_Model{

    function __construct(){
        parent::__construct();
    }

    public function loadData(){
         $this->db->where('contactMe');
         $query = $this->db->get('content');
         return $query->result_array();
    }
}

My view

<div class="w-100" ondblclick="makeEditable(this)" onblur="makeReadOnly(this)" contenteditable="true" id="contactMe">

        <?php 
          foreach($contactMeData as $contact){
              echo $contact;
          }
        ?>
      </div>
    <button id="editBtn" type="submit" value="">Save changes
    </button>

Every time I reload the page it replaces the data already in the database and I just get a blank div. I'm unable to view the data that was in the database to begin with.

Upvotes: 0

Views: 108

Answers (2)

sauhardnc
sauhardnc

Reputation: 1961

This might be because every time you open the URL it updates the table, so you need a condition to check if POST request was made or not and then update the column

public function index(){

    if($this->input->post()){  // check for post request

        $data['contactMe'] = $this->input->post('data');

        $this->db->update('content', $data); // try writing db queries in model
    }

    $results = $this->view_data->loadData();

    $data['contactMeData'] = $results;

    $this->load->view('pages/home', $data);
}

See, if it helps you.

Upvotes: 0

dmforaname
dmforaname

Reputation: 63

try to add parameter on where

 $this->db->where('contactMe',$parameter);

try to add field name on your view

echo $contact['field_name'];

Upvotes: 1

Related Questions