Foros del Web » Programando para Internet » PHP » CodeIgniter »

al hacer ajax apuntando a un controlador me pisa las variables globales

Estas en el tema de al hacer ajax apuntando a un controlador me pisa las variables globales en el foro de CodeIgniter en Foros del Web. Hola!! a ver si me pueden ayudar con esto Tengo esta libreria: Código: <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class cartas{ function __construct() ...
  #1 (permalink)  
Antiguo 04/02/2015, 08:39
 
Fecha de Ingreso: julio-2013
Mensajes: 31
Antigüedad: 10 años, 9 meses
Puntos: 0
al hacer ajax apuntando a un controlador me pisa las variables globales

Hola!! a ver si me pueden ayudar con esto
Tengo esta libreria:

Código:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');


class cartas{
	function __construct()
	{
		$this->ci =& get_instance();
		$this->ci->load->library('session');
        $this->ci->load->library('tank_auth');
		$this->ci->load->library('jugador');
		$this->ci->load->database();
	}

    var $jugadores = array();

	public function barajar ($partida_id){
        $this->ci->db->select('*');
        $this->ci->db->from('cartas');
        $this->ci->db->order_by('id','RANDOM');
        $this->ci->db->limit(6);
        $cartas  = $this->ci->db->get()->result();
        
        $c = 0; 
        foreach ($cartas as $carta) {                 
            if($c <= 2){                                                                
                $jugadores[JUGADOR_1][$partida_id][$carta->id] = $carta;
                //seteo el status de cada carta a 0
                $jugadores[JUGADOR_1][$partida_id][$carta->id]->status = 0;

            } 
            if($c > 2){
                $jugadores[JUGADOR_2][$partida_id][$carta->id] =  $carta;  
                //seteo el status de cada carta a 0       
                $jugadores[JUGADOR_2][$partida_id][$carta->id]->status = 0;

            } 

            $c++;
         }

        return $jugadores; 
    }

    public function getCartas(){
        global $jugadores;
        return $jugadores;
    }
    	
}
y esta funcion en un controlador:
Código:
function traerCartas(){
$data['cartas'] = $this->cartas->getCartas();
    	$this->load->view('juego/mis-cartas', $data);
    }
y por ultimo en mi vista tengo
Código:
<script type="text/javascript">
  $(document).ready(function(){      
      $(".mis-cartas").load('<?=base_url();?>index.php/dashboard/traerCartas');         
  });

</script>
Basicamente lo que necesito hacer es cargar en el div .mis-cartas por ajax lo que me devuelva el controlador, que a su vez se comunica con la liberira.

Todo funcion correctamente, el tema es que al parecer cuando hace el load vuelve ac cargar el controlador y pisa la variable $jugadores, retornando null.
  #2 (permalink)  
Antiguo 04/02/2015, 09:33
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: al hacer ajax apuntando a un controlador me pisa las variables globales

vaya, la peor receta que puedes usar es alterar el estado de un objeto mediante una variable global, te recomiendo que hagas var_dump de jugadores para que veas en que punto cambia.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 04/02/2015, 10:28
 
Fecha de Ingreso: julio-2013
Mensajes: 31
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: al hacer ajax apuntando a un controlador me pisa las variables globales

Gracias por tu respuesta, de que manera me recomendas guardar esos datos? ya que en la base de datos no lo puedo guardar, porque despues implica realizar muchas consultas y me tira el servidor.

Saludos

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:21.