0

私はCodeigniterでプロジェクトをやっています。私が持っているビューの 1 つは、学生とアカウントを選択する必要があります。学生とアカウントは、異なるビューとコントローラーにあります。学生を正常に選択し、いくつかのフィールドに学生の情報を入力しましたが、アカウントを選択してアカウントのフィールドに入力したいのですが、学生の情報が消えてしまいました。

これが私が取り組んでいるビューです:

<?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 メソッドはこれらのビューから送信された情報を取得し、作業中のビューを開いて情報を入力しますが、期待どおりに機能しません。最初に選択したものは、選択すると消えます2番目のもの。

これを機能させるための提案はありますか?学生とアカウントの両方を選択したときに情報を表示したい。

4

2 に答える 2

1

Expedienteを保存しません。私の例では、$elExpediente と $idPlan をセッション変数に保存し、ビューにリダイレクトします。次に、$this->load->view('cuentas_view') で、この Expediente と idPlan に関するデータをモデルからビューでそれぞれ 1 行として読み込みます。

このようにしてみてください、私があなたを助けたと思います。

コントローラ

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 でわからない、私はそれを使用していません

于 2013-05-12T00:24:47.517 に答える