Foros del Web » Programando para Internet » Javascript »

Problema con paso de parámetros

Estas en el tema de Problema con paso de parámetros en el foro de Javascript en Foros del Web. Tengo el siguiente problema al llamar a una función a la que le paso un parámetro numérico Esta es la función, que solamente muestra el ...
  #1 (permalink)  
Antiguo 22/06/2007, 10:37
 
Fecha de Ingreso: abril-2007
Mensajes: 22
Antigüedad: 17 años, 8 meses
Puntos: 0
Sonrisa Problema con paso de parámetros

Tengo el siguiente problema al llamar a una función a la que le paso un parámetro numérico

Esta es la función, que solamente muestra el parámetro pasado
Código HTML:
<script language="javascript">
	function mostrarId(id){
		alert ("ID: "+id);
	}
</script> 
Para llamarla, si el valor pasado es 101 no hay fallo, muestra 101
Código HTML:
<li onClick="mostrarId(101)">Visita</li> 
El problema viene cuando pasamos 0101, que el alerta dice que id dentro de la función pasa a valer 65
Código HTML:
<li onClick="mostrarId(0101)">Visita</li> 
¿Qué es lo que está pasando? Y más importante ¿como puedo evitarlo? Ya que en realidad el parámetro que neceisto pasarle a la función se obtiene del identificador de una base de datos y viene con todo 0s a la izquierda.

Última edición por Neeno; 23/06/2007 a las 10:54
  #2 (permalink)  
Antiguo 22/06/2007, 10:43
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Problema con paso de parámetros

Hola:

Estás usando un método que no defines (al menos en el ejemplo).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 22/06/2007, 10:44
 
Fecha de Ingreso: abril-2007
Mensajes: 22
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con paso de parámetros

Vale, se me olvidó editarlo para postear aqui la duda, ahora está bien el código
  #4 (permalink)  
Antiguo 22/06/2007, 10:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Problema con paso de parámetros

Hola:

Se me había olvidado darte la bienvenida, espero que disfrutes de los foros

Parece que está interpretando numeración no-decimal (no sé si es octal)... si se trata de una cadena tendrías que entrecomillarla, ya que los ceros por delante no es normal escribirlos... o pasarlos antes por el método parseInt().

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 22/06/2007, 11:48
 
Fecha de Ingreso: abril-2007
Mensajes: 22
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Problema con paso de parámetros

Vale, perfecto , esta duda está resuelta. En JavaScript, si no se dice lo contrario, los nºs se interpretan así:

0x10 (Hexadecimal) = 16 en decimal
010 (Octal) = 8 en decimal
10 (decimal) = 10 en decimal

Ahora veo dos opciones:
1.- Tengo que evitar pasar el nº con 0s delante, para que JavaScript no lo malinterprete, osea quitarselos con php (q ahora mismo no sé q función puede hacer eso)
2.- La función ParseInt() parsea un string en un entero, pero lo que yo tengo es un entero decimal aunque al escribirse 010, javascript lo interpreta como 8 decimal (10 octal). Habría que encontrar una forma de pasar directamente 010 a decimal

¿Hay alguna función que pase de Int a string?
  #6 (permalink)  
Antiguo 23/06/2007, 06:25
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 7 meses
Puntos: 834
Re: Problema con paso de parámetros

Código PHP:
<?php echo intval('010'?>
<script>alert(parseInt('010',10))</script>
  #7 (permalink)  
Antiguo 23/06/2007, 10:51
 
Fecha de Ingreso: abril-2007
Mensajes: 22
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: Problema con paso de parámetros

Perfecto la función de php intval es la que me ha valido, muchas gracias Panino, ya me veía quitandole lo de zerofill a todas las tablas de la base de datos xD

Al final la cosa me ha quedado tal que así
Código PHP:
<?
$visita 
intval($v[id_visita_programada]);                
if ((
$numMes == $d) && ($mes == $m) && ($ano == $a)){?>
    <li class="visita" onclick="mostrarVisita(<?echo $visita;?>)">
        <?echo $visita;?>
    </li>
<?
}
?>
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 19:24.