我在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);
}
}
&GT;
正如您所看到的,setStudent和setAccount方法获取这些视图发送的信息,然后打开我正在处理的视图并填写一些信息,但它没有按预期工作,我选择的第一个消息当我选择第二个时。
有什么建议让这个工作?我希望学生和帐户在我选择时显示信息。
答案 0 :(得分:1)
你不保存Expediente。 在我的示例中,我们将$ elExpediente和$ idPlan保存在会话变量中,并重定向到视图。 然后在$ this-&gt; load-&gt; 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 :(得分:0)
我发布这个答案只是为了取出我的一些Stackoverflow点:
Codeigniter不是为了理解西班牙语变量而设计的。
你去......