Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Pasar valores de array

Estas en el tema de Pasar valores de array en el foro de Frameworks JS en Foros del Web. Hola! Si no es el foro correcto pido disculpas. Tengo este código que genera un array : Código PHP: $return_arr  = array(); $fetch  =  mysql_query ( ...
  #1 (permalink)  
Antiguo 15/09/2012, 13:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Pasar valores de array

Hola!
Si no es el foro correcto pido disculpas.


Tengo este código que genera un array:

Código PHP:
$return_arr = array();

$fetch mysql_query("SELECT id, fecha, descripcion FROM novedades"); 

while (
$row mysql_fetch_array($fetchMYSQL_ASSOC)) {
    
$row_array['id'] = $row['id'];
    
$row_array['fecha'] = $row['fecha'];
    
$row_array['descripcion'] = $row['descripcion'];

    
array_push($return_arr,$row_array);
}

echo 
json_encode($return_arr); 
el formato que muestra es asi:

[{"id":"1","fecha":"2012-06-14","descripcion":"ddddddddddddddd"},
{"id":"2"," fecha ":"2012-06-14","descripcion":"rrrrrrrrrrrrr"},
{"id":"3"," fecha ":"2012-06-15","descripcion":"mmmm msdf mmmmmm"}]


Necesito leerlo en la siguiente función que es un calendario, pero no se como.

Código HTML:
<script type="text/javascript">

$.getJSON('miarray.php',function(events){

		$(function(){
			$("#datepicker").datepicker({
				beforeShowDay: function eventsDates(date) {
//recorrer el array y de acuerdo a las fechas las muestre en el calendario (el resto quedarían deshabilitadas)

Código HTML:
				}
			})
		})
	})
	</script> 
Espero puedan orientarme, desde ya muchas gracias!
__________________
Saludos!!!
Maru.-
  #2 (permalink)  
Antiguo 15/09/2012, 17:02
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Pasar valores de array

Algo así:
Código Javascript:
Ver original
  1. //acá obtengo las fechas por DB
  2. var o_fechas_disponibles = [{"id":"1","fecha":"2012-06-14","descripcion":"ddddddddddddddd"},
  3.     {"id":"2","fecha":"2012-06-14","descripcion":"rrrrrrrrrrrrr"},
  4.     {"id":"3","fecha":"2012-06-15","descripcion":"mmmm msdf mmmmmm"}];
  5.  
  6. //convierto este objeto en array de fechas, sólo por conveniencia
  7. //esto debe hacerse fuera de la función callback y de preferencia al comienzo de todo
  8. //de esta forma hacemos este ciclo sólo una vez.
  9. var ar_fechas_disponibles = new Array();
  10. $.map(o_fechas_disponibles,function(n,i){
  11.     ar_fechas_disponibles[i] = n.fecha;
  12. });
  13.  
  14. $(function(){
  15.     $("#datepicker").datepicker({
  16.         beforeShowDay: function(date) {
  17.             //obtengo la fecha que me provee datepicker y la pongo en EL MISMO formato
  18.             //que las fechas que yo tengo, para poder comparar.
  19.             _fecha = date.getFullYear() + '-' + ("0" + (date.getMonth()+1)).slice(-2) + '-' +("0" + date.getDate()).slice(-2);
  20.            
  21.             //verifico que la fecha obtuve esté en el arreglo.
  22.             //Si no está, devuelvo false y un texto para mostrar como tooltip en la fecha
  23.             if ($.inArray(_fecha, ar_fechas_disponibles)==-1) {
  24.                 return [false,"","No disponible"];
  25.             } else {
  26.                 return [true, ""];
  27.             }
  28.         }
  29.     })
  30. });

Ejemplo completo funcionando: http://jsfiddle.net/9RMsV/

Si te fijás en el ejemplo, sólo podés elegir entre el 14 y 15 de Junio. Tal y cómo querrías.

También fijate que en el ejemplo de objeto que pasaste, tenés el primer elemento así "fecha" mientras que los otros dos son " fecha " (con espacios). Estimo que si ese objeto lo generás automáticamente, eso no debería suceder. Probablemente sólo lo escribiste mal :P
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 16/09/2012, 10:17
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Pasar valores de array

Gracias Naahuel!!!
Tu ejemplo funciona! solo que estoy luchando con reemplazar esto

[{"id":"1","fecha":"2012-06-14","descripcion":"ddddddddddddddd"},
{"id":"2","fecha":"2012-06-14","descripcion":"rrrrrrrrrrrrr"},
{"id":"3","fecha":"2012-06-15","descripcion":"mmmm msdf mmmmmm"}];

por mi php

Código PHP:
$return_arr = array(); 

$fetch mysql_query("SELECT id, fecha, descripcion FROM novedades");  

while (
$row mysql_fetch_array($fetchMYSQL_ASSOC)) { 
    
$row_array['id'] = $row['id']; 
    
$row_array['fecha'] = $row['fecha']; 
    
$row_array['descripcion'] = $row['descripcion']; 

    
array_push($return_arr,$row_array); 


echo 
json_encode($return_arr); 
ya que los datos los tomaría desde la base y son variables, no se como llamar al archivo que devuelve el array.
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 16/09/2012, 12:32
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Pasar valores de array

Algo así:

Código Javascript:
Ver original
  1. $(function(){
  2.     $.getJSON('miarray.php')
  3.         .done(function(o_fechas_disponibles){
  4.             //convierto este objeto en array de fechas, sólo por conveniencia
  5.             var ar_fechas_disponibles = new Array();
  6.             $.map(o_fechas_disponibles,function(n,i){
  7.                 ar_fechas_disponibles[i] = n.fecha;
  8.             });
  9.  
  10.             $("#datepicker").datepicker({
  11.                 beforeShowDay: function(date) {
  12.                     //obtengo la fecha que me provee datepicker y la pongo en EL MISMO formato
  13.                     //que las fechas que yo tengo, para poder comparar.
  14.                     _fecha = date.getFullYear() + '-' + ("0" + (date.getMonth()+1)).slice(-2) + '-' +("0" + date.getDate()).slice(-2);
  15.                    
  16.                     //verifico que la fecha obtuve esté en el arreglo.
  17.                     //Si no está, devuelvo false y un texto para mostrar como tooltip en la fecha
  18.                     if ($.inArray(_fecha, ar_fechas_disponibles)==-1) {
  19.                         return [false,"","No disponible"];
  20.                     } else {
  21.                         return [true, ""];
  22.                     }
  23.                 }
  24.             })
  25.         })
  26.         .fail(function(){
  27.             alert('No se puede obtener los valores de la base de datos');
  28.         });
  29. });
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 16/09/2012, 13:38
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Pasar valores de array

Que genio!!! está funcionando!

Estuve intentando implementar que al hacer click en alguna de las fechas me devuelva un resultado, pero cuando lo quiero incluir en tu ejemplo no funciona.

Código HTML:
onSelect: function(selectedDate) {
			var fecha;
			fecha = $("#datepicker").attr("value");
            $.ajax({
                type: "GET",
                url: "buscar.php",				
				data: 'datepicker='+fecha,
                success: function(data) {
                    $('#result').html(data);
                  }
            });
            }
buscar.php

Código PHP:
$sql="SELECT * FROM `novedades` ORDER BY id DESC LIMIT 3";
$novedades $rs->get_object_list($sql);

if(isset(
$_GET['datepicker'])){
            
$dob1=trim($_GET['datepicker']);//$dob1='dd/mm/yyyy' format
            /*list($d, $m, $y) = explode('-', $dob1);
            $mk=mktime(0, 0, 0, $m, $d, $y);
            $dob_disp1=strftime('%Y-%m-%d',$mk);*/
            
list($d$m$y) = explode('/'$dob1);
            
$dob_disp1=$y."-".$m."-".$d;
            
//echo $dob1;
    //$sql="SELECT * FROM `novedades` WHERE `fecha`={$_GET['fecha']}";
    
$sql="SELECT * FROM `novedades` WHERE `fecha`='".$dob_disp1."'";
} else {
    die(
'error'); }
$buscar $rs->get_object_list($sql); 
__________________
Saludos!!!
Maru.-
  #6 (permalink)  
Antiguo 16/09/2012, 13:47
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Pasar valores de array

Esto me funciona perfectamente (paso el script completo):
Código JAVASCRIPT:
Ver original
  1. $(function(){
  2.     $.getJSON('miarray.php')
  3.         .done(function(o_fechas_disponibles){
  4.             //convierto este objeto en array de fechas, sólo por conveniencia
  5.             var ar_fechas_disponibles = new Array();
  6.             $.map(o_fechas_disponibles,function(n,i){
  7.                 ar_fechas_disponibles[i] = n.fecha;
  8.             });
  9.  
  10.             $("#datepicker").datepicker({
  11.                 beforeShowDay: function(date) {
  12.                     //obtengo la fecha que me provee datepicker y la pongo en EL MISMO formato
  13.                     //que las fechas que yo tengo, para poder comparar.
  14.                     _fecha = date.getFullYear() + '-' + ("0" + (date.getMonth()+1)).slice(-2) + '-' +("0" + date.getDate()).slice(-2);
  15.                    
  16.                     //verifico que la fecha obtuve esté en el arreglo.
  17.                     //Si no está, devuelvo false y un texto para mostrar como tooltip en la fecha
  18.                     if ($.inArray(_fecha, ar_fechas_disponibles)==-1) {
  19.                         return [false,"","No disponible"];
  20.                     } else {
  21.                         return [true, ""];
  22.                     }
  23.                 },
  24.                 onSelect: function(fecha){
  25.                      $.ajax({
  26.                         type: "GET",
  27.                         url: "buscar.php",
  28.                         data: 'datepicker='+fecha,
  29.                         success: function(data) {
  30.                             alert(data);
  31.                           }
  32.                     });
  33.                 }
  34.             });
  35.         })
  36.         .fail(function(){
  37.             alert('No se puede obtener los valores de la base de datos');
  38.         });
  39. });
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 16/09/2012, 13:54
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Pasar valores de array

Un capo total!!! me estaba faltando un ;
Miles de gracias!!! venía luchando con esto de hace rato!!! gracias por la ayuda!
Saludos!
__________________
Saludos!!!
Maru.-
  #8 (permalink)  
Antiguo 16/09/2012, 14:18
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Pasar valores de array

No hay por donde :)
__________________
nahueljose.com.ar

Etiquetas: javascript, js, 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 09:41.