2013-05-11 79 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:

笨并不旨在了解西班牙变量。

你走了...