0

我正在 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 方法获取这些视图发送的信息,然后打开我正在处理的视图并填写一些信息,但它没有按预期工作,我选择的第一个在我选择时消失第二个。

一些建议让这个工作?我希望学生和帐户在选择时都显示信息。

4

2 回答 2

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');
    }   
}

校友模型:

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,我从不使用它

于 2013-05-12T00:24:47.517 回答
0

我发布这个答案只是为了去掉我的一些 Stackoverflow 点:

Codeigniter 并非旨在理解西班牙语变量。

给你...

于 2014-01-24T08:10:03.577 回答