elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)  (Leído 2,646 veces)
geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
« en: 23 Octubre 2016, 03:20 am »

Quiero recuperar mi JSON para mi controlador home porque quiero esos valores para mi menú basado en roles. Si hago esto con archivos separados  no funciona en  mi código. de view home Entonces, ¿qué es estoy haciendo mal con el? ¿Cómo se puede arreglar bien mostrando los valores correctos?


login controller:

Código
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3.  
  4. class Login extends MY_Controller {
  5.  public function __construct(){
  6.    parent::__construct();
  7.  }
  8.  
  9.  public function index(){
  10.    $data['module'] = 'Login';
  11.    $this->load->view('login',$data);
  12.  }
  13.  
  14.  public function getAccess(){
  15.    if ($this->session->userdata('logged_in') == TRUE){
  16.      redirect('home');
  17.    }else{
  18.      $username = $this->security->xss_clean($this->input->post('username'));
  19.      $password = $this->security->xss_clean($this->input->post('password'));
  20.      $array = $this->user->login($username,$password);
  21.      if ($array[0] == 0) {
  22.        echo 0;
  23.      }else{
  24.        $data_session = array(
  25.          'id' => $array[0]['id'],
  26.          'name' => $array[0]['nombre'],
  27.          'last_name' => $array[0]['apellido'],
  28.          'type' => $array[0]['id_perfil'],
  29.          'logged_in' => TRUE
  30.        );
  31.        $this->session->set_userdata('log',$data_session);
  32.      }
  33.    }
  34.  }
  35.  
  36.  public function logout(){
  37.    $this->session->sess_destroy();
  38.    redirect('login');
  39.  }
  40.  
  41.  public function getModules($id_module){
  42.        if($this->session->userdata('log')){
  43.            $data = $this->session->userdata('log');
  44.            $menu = array();
  45.            $seccions = $this->module->get_rows();
  46.            foreach ($seccions as $index => $sección){
  47.               $modules = $this->module->query("SELECT CONCAT('".$sección['id']."',storelte_modulo.id) AS id,CONCAT('".base_url('assets/img/sidebar')."','/',storelte_modulo.icon) as icon, storelte_modulo.modulo AS value,storelte_modulo.seccion_id,CONCAT('".base_url()."',storelte_modulo.url) AS  url FROM storelte_modulo INNER JOIN storelte_modulo_perfil ON  storelte_modulo_perfil.modulo_id = storelte_modulo.id WHERE seccion_id = $sección[id] AND storelte_modulo_perfil.perfiles_id = $data[id] AND storelte_modulo_perfil.STATUS = 1");
  48.                $seccions[$index]['data']= $modules;
  49.                if (!count($seccions[$index]['data']))
  50.                    unset($seccions[$index]);
  51.            }
  52.            foreach ($seccions as $item)
  53.                array_push($menu,$item);
  54.          $this->data['fields'] = $menu;
  55.          $this->json($this->data);
  56.          $this->load->view('home',$this->data);
  57.        }
  58.    }
  59. }
  60.  


home controller:

Código
  1.   <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Home extends MY_Controller {
  4.  
  5.  public function __construct(){
  6.    parent::__construct();
  7.    $this->isLogged();
  8.  }
  9.  
  10.  public function index(){
  11.    $data = $this->session->userdata('log');
  12.    $data['module']  = "Home";
  13.    $this->load->view('header',$data);
  14.    $this->load->view('home',$data);
  15.  }
  16.  
  17. }
  18.  


view home

Código
  1. <section class="sidebar">
  2.      <!-- sidebar menu: : style can be found in sidebar.less -->
  3.      <ul class="sidebar-menu">
  4.         <li class="treeview">
  5.          <a href="#">
  6.            <img src="<?= base_url().'/assets/img/sidebar/items.png'?>" alt="" class="menu-icon"> <span>Inventory</span>
  7.            <i class="fa fa-angle-left pull-right"></i>
  8.          </a>
  9.          <ul class="treeview-menu">
  10.            <li><a href="<?=base_url('inventory/product');?>"><i class="fa fa-circle-o text-aqua"></i> Product</a></li>
  11.          </ul>
  12.        </li>
  13.  


En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
« Respuesta #1 en: 26 Octubre 2016, 16:09 pm »

Es facil, si en tu controlador tenes algo como esto:

Código
  1. //Asigno las variable en $data, este siempre debe ser un array.
  2. $data['usuario'] = array( 'nombre'=>'Facundo', 'apellido'=>'López' );
  3. $data['texto'] = 'Hace mucho viento...';
  4. //Cargo la vista pasandole $data
  5. $this->load->view('home', $data);
  6.  

Luego, en tu vista, cada variable del arreglo $data se convierte en una variable independiente, por ejemplo para mostrar las variables usuario y texto haríamos asi:

Código
  1. <p>Nombre: <?=$usuario['nombre']?></p>
  2. <p>Apellido: <?=$usuario['apellido']?></p>
  3. <p><?=$texto?></p>
  4.  

Espero haberte ayudado...


En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
geshiro

Desconectado Desconectado

Mensajes: 178


Ver Perfil
Re: ¿Cómo puedo conseguir mi entrada JSON casa controler controler?(codeigniter)
« Respuesta #2 en: 30 Octubre 2016, 00:17 am »

eso ya lo tengo lo que quiero es pasar todo el menu porque me da este error


Código
  1. A PHP Error was encountered
  2.  
  3. Severity: Notice
  4.  
  5. Message: Undefined variable: fields
  6.  
  7. Filename: views/modules_view.php
  8.  
  9. Line Number: 3
  10.  
  11. Backtrace:
  12.  
  13. File: C:\xampp\htdocs\storeLTE\application\views\modules_view.php
  14. Line: 3
  15. Function: _error_handler
  16.  
  17. File: C:\xampp\htdocs\storeLTE\application\views\home.php
  18. Line: 147
  19. Function: view
  20.  
  21. File: C:\xampp\htdocs\storeLTE\application\controllers\Home.php
  22. Line: 14
  23. Function: view
  24.  
  25. File: C:\xampp\htdocs\storeLTE\index.php
  26. Line: 315
  27. Function: require_once
  28.  
  29. A PHP Error was encountered
  30.  
  31. Severity: Warning
  32.  
  33. Message: Invalid argument supplied for foreach()
  34.  
  35. Filename: views/modules_view.php
  36.  
  37. Line Number: 3
  38.  
  39. Backtrace:
  40.  
  41. File: C:\xampp\htdocs\storeLTE\application\views\modules_view.php
  42. Line: 3
  43. Function: _error_handler
  44.  
  45. File: C:\xampp\htdocs\storeLTE\application\views\home.php
  46. Line: 147
  47. Function: view
  48.  
  49. File: C:\xampp\htdocs\storeLTE\application\controllers\Home.php
  50. Line: 14
  51. Function: view
  52.  
  53. File: C:\xampp\htdocs\storeLTE\index.php
  54. Line: 315
  55. Function: require_once
  56.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines