php - initialize - load view codeigniter
Codeigniter: Pasar datos del controlador para ver (10)
En el controlador:
$data["result"] = $this->login_model->get_login(); // Get array value from DB..
$this->load->view(''login-form'',$data); // Pass the array to view
En vista:
print_r($result); // print the array in view file
Quiero pasar $data
del controlador llamado poll
a la vista de resultados; sin embargo, recibo un error variable indefinido.
<?php if ( ! defined(''BASEPATH'')) exit(''No direct script access allowed'');
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper(''form'');
}
public function index()
{
$this->load->view(''poll_view'',$data);
}
public function vote()
{
echo "Voting Successfull";
$this->db->insert(''votes'',$_POST);
}
public function results()
{
echo "These are the results";
//$query = $this->db->get(''votes'');
$data = "hello";
$this->load->view(''results_view'', $data);
}
}
Results_view.php
<html>
<?php echo $data; ?>
</html>
En lenguaje sencillo,
$ data [''a''] en el controlador se convierte en $ a en su vista. ($ datos no existirán en su vista, solo el índice estará disponible)
p.ej
Controller:
$data[''hello'']=''hellow world'';
view:
echo $hello;
En tu controlador puedes pasar
$data[''poll''] = "Your results";
En su opinión puede llamar
echo $poll;
He visto todas las respuestas anteriores, así que esto es lo que hago cuando tengo que cargar los datos del controlador a mi vista. Para pasar los datos a la vista desde el controlador:
public function your_controller(){
// Your Necessary Code
// You have the $data, $data2, $data3 to post to the view.
$this->load->view(''your_view_directory or view_page'',[''data''=>$data, ''data2''=>$data2, ''data3''=>$data3... so on ]);
}
Y en el lado de la vista, simplemente puede recuperar esa información: Para mostrar, simplemente puede usar echo
, print
, print_r
. Y si quieres recorrerlo, puedes hacer eso también.
La vista no llamaría a los datos ''datos''
El controlador incluiría un índice asociativo (no estoy seguro de si esa es la nomenclatura correcta) para los datos, por ejemplo, ''cosas'' que parezcan $data[''stuff'']
Harías echo
en la vista así: echo $stuff;
no echo $data;
Soy un violinista de código humilde, pero realmente me gusta CodeIgniter, discúlpame si tengo este culo sobre tit.
Una cosa más: seguramente su función de constructor es un desperdicio. Toda la carga de bibliotecas y ayudantes se realiza con el archivo de autocarga.
Ok, así que finalmente lo resolvió. Realmente deberías tener un modelo (ayuda mucho)
En su modelo, haga algo como
Modelo
class poll_model extends CI_MODEL {
function __construct() {
$this-load->database();
}
function get_poll {
$this->db->query("SELECT * FROM table");
$row = $query->row();
$obj = array(
''id'' => $row->id
);
return $obj;
}
}
Ahora, si tiene más de un ID, digamos el nombre de la encuesta #, puede agregarlo en la matriz. Ahora en tu controlador haz
class Poll extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->helper(''form'');
$this->load->model(''poll_model'');
}
public function index()
{
$data["a"] = $this->poll_model->get_poll();
$this->load->view(''poll_view'',$data);
}
Y finalmente en VIEW put
<? echo $a["id"]; ?>
Esto es de gran ayuda. Lo descubrí probando y funciona para mí.
Solo necesitas crear una matriz, usando codeigniter ¿verdad?
Ejemplo en el controlador:
$data[''hello''] = "Hello, world";
$this->load->view(''results_view'', $data);
En la página "results_view" solo tienes que:
<?php echo $hello;?>
Obs: Puedes crear n datos, solo pon atención en el nombre y haz que sea una matriz.
Obs²: Para usar los datos usa la clave de la matriz con un eco.
puedes hacerlo de esta manera $ data [''hello''] = "hello";
a la vista echo $ hello;
$data
debe ser una matriz o un objeto: http://codeigniter.com/user_guide/general/views.html
$data = array(
''title'' => ''My Title'',
''heading'' => ''My Heading'',
''message'' => ''My Message''
);
$this->load->view(''results_view'', $data);
results_view.php
<html>
<?php
//Access them like so
echo $title.$heading.$message; ?>
</html>
En el controlador:
producto de función pública () {
$data = array("title" => "Books", "status"=>"Read","author":"arshad","company":"3esofttech",
"sujeto": "ciencia de la computación");
Datos del modelo al controlador
$this->load->model(''bookModel'');
$result = $this->bookModel->getMoreDetailsOfBook();
**Add *$result* from model to *$data* array**
$data[''tableRows''] = $result;
$ datos del controlador para ver
$this->load->view(''admin/head'',$data);
Y para acceder a view view file / user.php
<?php echo $data;
foreach($tableRows as $row){ echo
$row[''startData'']; } ?>