Foros del Web » Programando para Internet » Javascript »

funcion de porcentaje utilizando javascript y php

Estas en el tema de funcion de porcentaje utilizando javascript y php en el foro de Javascript en Foros del Web. Hola, tengo una duda, quiero que en un campo de texto me muestre el porcentaje, segun el valor dado, el caso es que yo extraigo ...
  #1 (permalink)  
Antiguo 15/07/2008, 17:12
Avatar de ana_gloria  
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 1
funcion de porcentaje utilizando javascript y php

Hola, tengo una duda, quiero que en un campo de texto me muestre el porcentaje, segun el valor dado, el caso es que yo extraigo los valores (total) que ya me dieron previamente en un formulario y en este otro me deben de dar el avance (avance) para alcanazar ese total y mi funcion es la siguiente:
<script>
function calcular()
{

var avance=Number(document.frmdatos.avance_+<?php $fila ["id_especie_pecuaria"]?>+.value);
var total=Number(document.frmdatos.programa_+<?php $fila["id_especie_pecuaria"]?>+.value);

document.frmdatos.total.value=(avance * 100 / total);

}
</script>
Nota: me dice que error, de sintaxis (que me faltan parentesis, ya se los puse pero aun asi no quiere)

cualquier sugerencia se los agradezco y pues como ven me falta mucho, asi que una disculpa para los grandes programadores
  #2 (permalink)  
Antiguo 15/07/2008, 18:22
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: funcion de porcentaje utilizando javascript y php

Hola ana_gloria:

Creo que tenemos un problema de concatenación. El PHP se ejecuta antes, y lo que imprimamos con PHP se traduce en esa salida HTML que luego se tomará como código javascript, o texto, o etiquetas de marcado:
Código PHP:
var avance=Number(document.frmdatos.avance_<?php echo $fila ["id_especie_pecuaria"]?>.value);
Si te fijas en el código fuente que el navegador te otorga después de haber probado ejecutado tu código verás que dista bastante de la sintaxis javascript, ya que los símbolos de sumar siguen ahí. No hace falta concatenar nada, porque PHP imprime directamente su valor sobre el código javascript. Así conseguiríamos esta línea, por ejemplo:
Código:
var avance=Number(document.frmdatos.avance_45.value);
Siendo válida como código javascript para que la interprete el navegador.

Tendríamos que tener cuidado de con qué valores calculamos. Es decir, si avance no llega a ser un número (dependiendo de qué metamos en la caja de texto) tomará el valor NaN, y no conseguiremos calcular nada. También habrá problemas si total es cero y dividimos entre cero.


Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 16/07/2008, 09:40
Avatar de ana_gloria  
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: funcion de porcentaje utilizando javascript y php

ok muchas gracias ya lo hice lo tengo asi:

function calcular()
{
var avance=Number(document.frmdatos.avance_<?php echo $fila["id_especie_pecuaria"]?>.value);
var total=Number(document.frmdatos.programa_<?php echo $fila["id_especie_pecuaria"]?>.value);
document.frmdatos.total.value=(avance * 100 / total);
}


cuando ejecuto la pagina, no me sale error (ya es ventaja!!), pero al tratar de escribir el avance, me sale asi y me dice que es nulo o no es un objeto.... ojala me pudieras ayudar gracias :D

document.frmdatos.avance_.value
  #4 (permalink)  
Antiguo 16/07/2008, 10:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: funcion de porcentaje utilizando javascript y php

Hola ana_gloria

¿Estás segura de que $fila["id_especie_pecuaria"] te devuelve el valor correcto?

Saludos,
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:58.