2013-05-11 48 views
0

我正在做Codeigniter中的一個項目。我有一個意見要求選擇一個學生和一個帳戶。學生和帳戶有不同的觀點和控制者。我成功選擇了學生,並填寫了部分學生信息字段,但是我想選擇該帳戶,並填寫該帳戶的字段,但學生的信息消失。加載控制器codeigniter時如何保存信息?

這裏是我工作的看法:

<?php 

    /*******Information for the student ********/ 
    $parametroExpediente = ""; 
    $parametroNombre = ""; 
    $parametroPrimerApellido = ""; 
    $parametroSegundoApellido = ""; 
    $parametroCedula = ""; 


    if (isset($expediente)) 
    { 
     $parametroExpediente = set_value('expediente', $expediente); 
     $parametroNombre = set_value('nombre', $nombre); 
     $parametroPrimerApellido = set_value('primerApellido', $primerApellido); 
     $parametroSegundoApellido = set_value('segundoApellido', $segundoApellido); 
     $parametroCedula = set_value('cedula', $cedula); 
    } 
    /************************************/ 

    /*******Information for the account********/ 
    $parametroIDPlan = ""; 
    $parametroDescripcionPlan = ""; 
    $parametroTotalAPagarPlan = ""; 
    $parametroCuantosPagosPlan = ""; 
    $parametroFrecuenciaPagoPlan = ""; 
    $parametroAcivoPlan = ""; 
    $parametroIDCursoPlan = ""; 
    $parametroMultiGrupoPlan = ""; 

    if (isset($idPlan)) 
    { 
     $parametroIDPlan = set_value('idPlan', $idPlan); 
     $parametroDescripcionPlan = set_value('descripcion', $descripcion); 
     $parametroTotalAPagarPlan = set_value('totalApagar', $totalApagar); 
     $parametroCuantosPagosPlan = set_value('cuantosPagos', $cuantosPagos); 
     $parametroFrecuenciaPagoPlan = set_value('cadaCuantosDiasPaga', $cadaCuantosDiasPaga); 
     $parametroAcivoPlan = set_value('activo', $activo); 
     $parametroIDCursoPlan = set_value('idCurso', $idCurso); 
     $parametroMultiGrupoPlan = set_value('multiGrupo', $multiGrupo);  
    } 
    /************************************/ 
?> 

<!--BUTTON TO SELECT A STUDENT --> 
<a href="http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/Alumnos_controller/loadAlumnoView/seleccionarParaCuenta" class="btn btn-primary">Seleccionar alumno</a> 
<span class="badge badge-info">Expediente: <?php echo $parametroExpediente ?></span> 
<!----------------------------------> 
<br/> 
<br/> 
<br/> 

<!--BUTTON TO SELECT AN ACCOUNT --> 
<a href="http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/PlanDePago_controller/loadPlanDePagoView/seleccionarParaCuenta/" class="btn btn-primary">Seleccionar plan de pago</a> 
<span class="badge badge-info">Plan escogido: <?php echo $parametroDescripcionPlan ?></span> 

當學生和賬戶被選中,他們都重定向他們的信息相同的控制器,該控制器是以下內容:

<?php 
class Cuentas_controller extends CI_Controller { 

    public $data = array(); 

    public function __construct() 
    { 
     parent::__construct(); 
     // Your own constructor code 

     $this->load->helper('url'); 

     $this->load->helper('form'); 

     $this->load->helper('url'); 

     $this->load->model('Alumnos_model'); 
     $this->load->model('PlanDePago_model'); 

    } 

    function index() 
    { 
     $this->load->view('cuentas_view'); 
    } 

    /*Take the information for the student*/ 
    function setStudent($elExpediente) 
    { 
     $query = $this->Alumnos_model->getAllData($elExpediente); 
     foreach ($query->result_array() as $row) 
     { 
      $this->data = array(
       //'expediente' => $row['expediente'], 
       'expediente' => $elExpediente, 
       'primerApellido' => $row['primerApellido'], 
       'segundoApellido' => $row['segundoApellido'], 
       'nombre' => $row['nombre'], 
       'cedula' => $row['cedula'] 
      ); 
     } 
     $this->load->view('cuentas_view',$this->data); 
    } 

    /*Take the information for the account*/ 
    function setAccount($id) 
    {   
     $query = $this->PlanDePago_model->getAllDataNoParameters($id); 
     foreach ($query->result_array() as $row) 
     { 
      $this->data = array(
       'idPlan' => $id, 
       'totalApagar' => $row['totalApagar'], 
       'descripcion' => $row['descripcion'], 
       'cuantosPagos' => $row['cuantosPagos'], 
       'cadaCuantosDiasPaga' => $row['cadaCuantosDiasPaga'], 
       'activo' => $row['activo'], 
       'idCurso' => $row['idCurso'], 
       'multiGrupo' => $row['multiGrupo'] 
      ); 
     } 
     $this->load->view('cuentas_view',$this->data); 
    } 
} 

?>

正如您所看到的,setStudent和setAccount方法將這些視圖發送的信息打開,然後打開正在處理的視圖並填充一些信息,但它不像預期的那樣工作,我選擇了第一個當我選擇第二個時消失。

一些建議,讓這個工作?我希望學生和帳戶在我選擇時顯示信息。

回答

1

您不保存Expediente。 在我的例子中,我們在會話變量中保存$ elExpediente和$ idPlan,並重定向到視圖。 然後在$ this-> load-> view('cuentas_view')中加載關於這個Expediente和idPlan的數據,從模型的角度看,每個模型都是一行。

嘗試這樣,想我幫了你。

控制器

class Cuentas_controller extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

     $this->load->helper('url'); 
     $this->load->helper('form'); 
     $this->load->helper('url'); 

     $this->load->model('Alumnos_model'); 
     $this->load->model('PlanDePago_model'); 

    } 

    function index() 
    { 
     $this->load->view('cuentas_view', array(
      'elExpediente' => $this->session->userdata('elExpediente'), 
      'idPlan'  => $this->session->userdata('idPlan'), 
     )); 
    } 

    function flashParams() 
    { 
     // to erase session data elExpediente and idPlan 
     $this->session->unset_userdata('elExpediente'); 
     $this->session->unset_userdata('idPlan'); 
    } 

    function setAccount($id) 
    { 
     $this->session->set_userdata('idPlan', $id); 
     redirect('http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/Cuentas_controller'); 
    } 

    function setStudent($elExpediente) 
    { 
     $this->session->set_userdata('elExpediente', $id); 
     redirect('http://localhost/ProyectoNetbeans/CodeIgniter_2.1.3/index.php/Cuentas_controller'); 
    } 
} 

Alumnos_model:

class Alumnos_model extends CI_Model 
{ 
    public function getItem($elExpediente) 
    { 
     $this->db->select('*'); 
     $this->db->where('someColumn', $elExpediente); 
     $this->db->limit(1); 
     $this->db->from('someTable'); 
     return $this->db->get()->row_array(); 
    } 
} 

PlanDePago_model:

class PlanDePago_model extends CI_Model 
{ 
    public function getItem($id) 
    { 
     $this->db->select('*'); 
     $this->db->where('someIdColumn', $id); 
     $this->db->limit(1); 
     $this->db->from('someTable'); 
     return $this->db->get()->row_array(); 
    } 
} 

cuentas_view.php文件:

<?php 

    /*******Information for the student ********/ 
    $parametroExpediente  = ""; 
    $parametroNombre   = ""; 
    $parametroPrimerApellido = ""; 
    $parametroSegundoApellido = ""; 
    $parametroCedula   = ""; 

    /*******Information for the account********/ 
    $parametroIDPlan    = ""; 
    $parametroDescripcionPlan = ""; 
    $parametroTotalAPagarPlan = ""; 
    $parametroCuantosPagosPlan = ""; 
    $parametroFrecuenciaPagoPlan = ""; 
    $parametroAcivoPlan   = ""; 
    $parametroIDCursoPlan  = ""; 
    $parametroMultiGrupoPlan  = ""; 


    if($row = $this->Alumnos_model->getItem($elExpediente)) 
    { 
     $parametroExpediente  = set_value('expediente',  $elExpediente); 
     $parametroNombre   = set_value('nombre',   $row['nombre']); 
     $parametroPrimerApellido = set_value('primerApellido', $row['primerApellido']); 
     $parametroSegundoApellido = set_value('segundoApellido', $row['segundoApellido']); 
     $parametroCedula   = set_value('cedula',   $row['cedula']); 
    } 

    if($row = $this->PlanDePago_model->getItem($idPlan)) 
    { 
     $parametroIDPlan    = set_value('idPlan',    $idPlan); 
     $parametroDescripcionPlan = set_value('descripcion',   $row['descripcion']); 
     $parametroTotalAPagarPlan = set_value('totalApagar',   $row['totalApagar']); 
     $parametroCuantosPagosPlan = set_value('cuantosPagos',  $row['cuantosPagos']); 
     $parametroFrecuenciaPagoPlan = set_value('cadaCuantosDiasPaga', $row['cadaCuantosDiasPaga']); 
     $parametroAcivoPlan   = set_value('activo',    $row['activo']); 
     $parametroIDCursoPlan  = set_value('idCurso',    $row['idCurso']); 
     $parametroMultiGrupoPlan  = set_value('multiGrupo',   $row['multiGrupo']);  
    } 
?> 

your html code here 

不知道在SET_VALUE,我從來沒有使用它

+1

非常感謝很多人,這對第一次嘗試完美無缺。真的很感謝你的非常詳細的答案。 – Vito 2013-05-15 00:40:07

0

我張貼這個答案只是拿出我的一些分#1:

笨並不旨在瞭解西班牙變量。

你走了...

相關問題