⚠ In case you've missed it, we have migrated to our new website, with a brand new forum. For more details about the migration you can read our blog post for website migration. This is an archived forum. ⚠

  •     

profile picture

add action button to copy a row



davidoster
  • profile picture
  • Member

Posted 07 February 2013 - 21:44 PM

I believe in order to help you, we need to see the whole of your controller and models.

Copying and pasting here parts of it doesn't really helps a lot to be honest.


victor
  • profile picture
  • Member

Posted 07 February 2013 - 21:49 PM

look at this:


 

$crud->add_action('Send', '', 'standby/standby_v/copyrows','ui-icon-plus');
echo $this->copyrows();


 

the copyrows need a argument:
echo $this->copyrows($id);


share your project and I test it on my server.


maru
  • profile picture
  • Member

Posted 07 February 2013 - 21:52 PM

thanks David for your interest!

 

my controller standby.php

 

 

 

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


class Standby extends CI_Controller {

    function __construct() 
    {
        
        parent::__construct();
        
        $this->load->database();
        $this->load->library('grocery_crud');
        $this->load->helper('url');
    }


    function index() 
    {
        
    }


   
    function standby_v()
    {
                
        try{
            
            $crud = new grocery_CRUD();

            $crud->set_theme('datatables');

            $crud->set_table('standby');

            $crud->set_subject('Standby');

            $crud->set_language('spanish');

            $crud->required_fields(
                'id_standby',
                'name',
                'email'
            );


            $crud->columns(
                'id_standby',
                'name',
                'email',
                'address',
                'phone',
                'password'
            );
            
            $crud->add_action('Send', '', 'copyrows','ui-icon-plus');
            
            $output = $crud->render();

            $this->load->view('standby/standby_v', $output);
            
        }catch(Exception $e){
            
            show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
        
       
    }
}

function copyrows($id)
    {
       $this->load->model('customer_model','customers');
       $this->load->model('standby_model','standby');
       $this->customers->insert($id); //insert into another table first
       $this->standby->delete($id); //then you can delete the source
    }
 

inside my folder model

 

customer_model.php

 

 

 

<?php
class Customer_model  extends CI_Controller
{
    public function insert($id) {
            $this->db->where('id_standby',$id);
            $rs = $this->db->get('standby')->result_array();
    
            $data['id_standby'] = $rs['id_standby']; 
            $data['name'] = $rs['name'];
            $data['email'] = $rs['email'];
            $data['address'] = $rs['address'];
            $data['phone'] = $rs['phone'];
            $data['password'] = $rs['password'];
            
            $this->db->insert('customers', $data);
        }
}    
?>
 

 

and standby_model.php

 

 

 

<?php
class Standby_model extends CI_Controller
{
     public function delete($id){
            $this->db->delete('standby', array('id_standby'=>$id));
    }
}
?>
 

victor
  • profile picture
  • Member

Posted 07 February 2013 - 21:57 PM

Unknown column 'id_standby' in 'field list' INSERT INTO `customers` (`id_standby`, `name`, `email`, `job`, `cuit`, `address`, `phone`, `password`) VALUES (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)

victor
  • profile picture
  • Member

Posted 07 February 2013 - 21:58 PM

Do you have this column "id_standby'" in the "customers" table?

victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:00 PM

show your table structure. I think your fields name are wrong

maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:02 PM

Hi Victor!

 

Table Customers

id_custumer

 

Table Standby

id_standby

 

the rest of fields are the same in both tables

 

name, email, address, phone, so on...


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:03 PM

Do you have a column called "id_standby'" in the "customers" table?

maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:08 PM

no, the id for customers table is id_customer, there is not a column called id_standby in this table


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:13 PM

your mistake is here:
<?php
class Customer_model  extends CI_Controller
{
.......
   
            $data['id_standby'] = $rs['id_standby'];

..........
           
            $this->db->insert('customers', $data);
        }
}   
?>

You want to insert a wrong data into table "'customers" .  $data['id_standby'] - is field name. But you haven't this column in your table


 


maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:17 PM

I want to copy a row from standby to customers

 

I changed this $data['id_customer'] = $rs['id_customer']; but it's not working

 

 

 

<?php
class Customer_model  extends CI_Controller
{
    public function insert($id) {
            $this->db->where('id_standby',$id);
            $rs = $this->db->get('standby')->result_array();
    
            $data['id_customer'] = $rs['id_customer']; 
            $data['name'] = $rs['name'];
            $data['email'] = $rs['email'];
            $data['address'] = $rs['address'];
            $data['phone'] = $rs['phone'];
            $data['password'] = $rs['password'];
            
            $this->db->insert('customers', $data);
        }
}    
?>
 
 

victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:21 PM

post deleted


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:23 PM

what error do you have?

 

is this first project for you?


maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:24 PM

I deleted that row $data['id_customer'] = $rs['id_customer'];  but doens't work, no insert the row.


maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:25 PM

there is no error, just the insert doesn't work.

and yes, it's my first proyect.


maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:28 PM

did u try it in your server? it's working?


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:33 PM

no , I don't try. I see that you haven't result after:
$this->db->where('id_standby',$id);
$rs = $this->db->get('standby')->result_array();

 

the $rs is NULL
then you try insert an empty row.

 

P.S.
Try make for example blog without third party libraries. You don't know how to debug your code.

http://blog.teamtreehouse.com/how-to-debug-in-php


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:38 PM

and read http://ellislab.com/codeigniter/user-guide/


maru
  • profile picture
  • Member

Posted 07 February 2013 - 22:45 PM

I changed the id, now both tables have a column id like the original example who j-gun wrote, but still not working.

 

Thanks for your help!


victor
  • profile picture
  • Member

Posted 07 February 2013 - 22:50 PM

send me a private message with your controller and database dump . I try help you. But it will be tomorrow