Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema Id Array

Estas en el tema de Problema Id Array en el foro de PHP en Foros del Web. Buenas de nuevo, ando con un problema que la verdad nunca me había pasado y me tiene un poco desconcertado. Paso a explicar. Código: global ...
  #1 (permalink)  
Antiguo 08/10/2014, 19:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 35
Antigüedad: 12 años, 7 meses
Puntos: 0
Problema Id Array

Buenas de nuevo, ando con un problema que la verdad nunca me había pasado y me tiene un poco desconcertado. Paso a explicar.

Código:
global $entro;
global $comprobante;
global $primeravez;
$j=0;
$entro = 'no';
$comprobante = 'no';
$primeravez = 'si';
function LlegadasTarde($fecha){
	$faltas = array();
	for($i=0;$i<count($empleados);$i++){
		$sector=DatosSector($empleados[$i][1],$fecha);
		$o=2;
		global $entro;
		global $comprobante;
		global $primeravez;
		for($x=0;$x<count($sector);$x++){
			$hora = $sector[$x][1];
			$hora2 = '00:15:00';
			$h = strtotime($hora);
			$h2 = strtotime($hora2);
			
			$minute = date("i", $h2);
			$second = date("s", $h2);
			$hour = date("H", $h2);
				
			$convert = strtotime("+".$minute." minutes",$h);
			$convert = strtotime("+".$second." seconds",$convert);
			$convert = strtotime("+".$hour." hours",$convert);
			$new_time = date('H:i:s', $convert);

			$trabajo = Diasquetrabajo($empleados[$i][1],$fecha);
			
			for($s=0;$s<count($trabajo);$s++){
				$r=0;
				$listo = explode(" ",$trabajo[$s][2]);

				if($new_time>$listo[1]){
					$r=1;
				}
				if($r==0){
					if($comprobante=='no'){
						if($primeravez=='si'){ 
							$faltas[$j][0]=$empleados[$i][1];
							$faltas[$j][1]=$empleados[$i][2];
							$faltas[$j][$o]=$trabajo[$s][2];
							$o++;
							$primeravez = 'no';
							$entro='si';
						}else{
							$faltas[$j][0]=$empleados[$i][1];
							$faltas[$j][1]=$empleados[$i][2];
							$faltas[$j][$o]=$trabajo[$s][2];
							$o++;
							$comprobante = 'no';
							$entro='si';
						}
					}else{
						$j++;
						$faltas[$j][0]=$empleados[$i][1];
						$faltas[$j][1]=$empleados[$i][2];
						$faltas[$j][$o]=$trabajo[$s][2];
						$o++;
						$comprobante = 'no';
						$entro='si';
					}
				}
			}
		}
		if($entro=='si'){
			$comprobante = 'si';
		}
	}
	echo json_encode($faltas);
}
El problema lo tengo en el array faltas, los datos se guardan, la variable $j se suma, pero debe de obtener este resultado:

{"0":["Cedula","Nombre","Hora1","Hora 2","Hora....",.........],
"1":["Cedula","Nombre 2","Hora 2","Hora....",.........],
"2":["Cedula","Nombre 3",""Hora 2","Hora....",.........]}

Obtengo el siguiente.

[["Cedula","Nombre","Hora1","Hora 2","Hora....",.........],
["Cedula","Nombre 2","Hora1","Hora 2","Hora....",.........],
["Cedula","Nombre 3","Hora1","Hora 2","Hora....",.........]] }

el indice del array no me lo carga. Haciendo algunos echos pude ver que la variable j como dije arriba se suma correctamente cuando lo tiene que hacer, el problema me lo da el array ya que si empieza de 0 y se va sumando de a 1 me da ese error, y si empieza la j en 1 debe de 0, acepta el id pero al intentar listarlo me aparece el siguiente error.

Uncaught SyntaxError: Unexpected token :

Es lo mismo si inicio la variable en 0 y le sumo a la j 2 (debe de 1) me lo acepta pero repito el error de arriba, espero haberme explicado bien y que me puedan ayudar.

Saludos
  #2 (permalink)  
Antiguo 08/10/2014, 20:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Id Array

Por favor, lee el manual, la función json_encode() es capaz de conservar las claves numéricas.

¿Por qué?

Porque estás convirtiendo un array, y es correcto que no tenga claves, ¿sabias?

Es decir:

Código Javascript:
Ver original
  1. // esto es un array
  2. var arr = [1, 2, 3];
  3.  
  4. // esto es un objecto
  5. var obj = { 0: 1, 1: 2, 2: 3 };

¿Entiendes la diferencia?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/10/2014, 15:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 35
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema Id Array

Si lo entiendo... y como hago para listarlos en un grid entonces? o agregarlos
  #4 (permalink)  
Antiguo 09/10/2014, 15:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Id Array

Cita:
Iniciado por MatiasFiermarin Ver Mensaje
Si lo entiendo... y como hago para listarlos en un grid entonces? o agregarlos
¿Te refieres a Javascript?

Vamos, si el plugin que usas entiende arrays entonces dale arrays.

No entiendo cual es la verdadera dificultad.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 09/10/2014, 19:04
 
Fecha de Ingreso: septiembre-2011
Mensajes: 35
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema Id Array

Disculpa quizas estoy preguntando cosas muy obvias, si retorno el array a la funcion

Código:
function Funcion(){
		$("#mensaje").html("");
		mygrid2.clearAll();
		var parametros = {
			"accion" : "1",
			"fecha" : this.fecha1.value
		};
		$.ajax({
			data:  parametros,
			url:   '../includes/FuncionesLlegadaTarde.php',
			type:  'post',
			
			success: function (response) {
				var ordenes = eval(response);
				for (var i = 0; i < ordenes.length; i++) { 
					for(var x = 2;x<ordenes[i].length; x++){
						//$('body').append(ordenes[0][0]);
						//$('body').append(ordenes[i][1]);
						//	$('body').append(ordenes[i][x]);
						mygrid2.addRow(mygrid2.uid(),[ordenes[i][0],ordenes[i][1],ordenes[i][x]],1);
					}
				}
			}
		});
	}
me da el siguiente error. Uncaught TypeError: Cannot read property 'length' of undefined
  #6 (permalink)  
Antiguo 09/10/2014, 19:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema Id Array

Definitivamente tu problema es otro, nada que ver con PHP ciertamente.

De entrada no deberías eval() jamás, para eso existe el método $.getJSON(), consulta una referencia de jQuery.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 09/10/2014, 20:16
 
Fecha de Ingreso: septiembre-2011
Mensajes: 35
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Problema Id Array

Lo pude arreglar por fin, el problema era el php que puse primero si, luego edito este post y lo pongo como me quedo al final por si alguien tiene un problema parecido

Etiquetas: fecha, variable
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 01:35.