Sábado 9 de Noviembre de 2024, 02:19
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Como Pasar Un Array De Php A Javascript?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Como Pasar Un Array De Php A Javascript? (Leído 3994 veces)
fern1979
Nuevo Miembro
Mensajes: 5
Como Pasar Un Array De Php A Javascript?
«
en:
Lunes 31 de Mayo de 2004, 19:14 »
0
Hola foreros:
Tengo una duda, y espero que en este foro me puedan ayudar, puesto que en otros, como que no he tenido mucho “éxito”.
Mi pregunta es la siguiente:
Tengo una Base de datos montada sobre MySQL en la cual tengo unas tablas. Una de ellas podría ser “Porcentaje”, con 3 columnas,,, “id_por”, “valor”, “nombre”. Y las cuales contienen 9 registros,
id_por =, 1, 2, 3, (autoincr)
valor= 100, 90, 80, … 10
nombre = 100, 90, 80, …. 10
El cliente en su navegador verá 3 select con las siguientes posibilidades:
Que en el primero ya pongamos el 100% (con lo cual, los otros dos select estarán inhabilitados o invisibles). Los valores que se vean serán desde el 100 hasta el 10
Que el primero pongamos p.e. un 30 (aparecerá o se habilitará la segunda opción) y que en la segunda, pongamos un 70 (los valores que se verán en esta opcion será desde el 70 hasta el 10) (con lo que la tercera,,, permanecería deshabilitada.)
Que pongamos en 1er lugar un 30, en segundo otro 30 (se habilita la tercera opción) (aquí irán las posibilidades desde el 40 hasta el 10) y pongamos un 40 para que sumen de nuevo 100%.
Básicamente quiero hacer eso, pero como en JavaScript no hay forma de consultar una Base de datos (o por lo menos no la conozco yo), había pensado en consultarla con PHP los valores en cuestión, meterlos en un array, y traspasar los valores de PHP a JavaScript, (ya se que podría meterlos en un Array directamente en JavaScript, pero me interesaría sacarlos de una BD para que los valores puedan ser “variables”)
Lo que ya no se por donde coger (he buscado información y no he encontrado nada que me funcione) es como puedo pasar los valores de un array en PHP a JavaScript . La verdad es que si me pudierais dar ideas, links o alguna ayuda para ir componiendo este proyecto estaría muy agradecido…
Un saludo
fern1979@hotmail.com
Tweet
Avalon
Miembro MUY activo
Mensajes: 448
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #1 en:
Martes 1 de Junio de 2004, 15:48 »
0
Hola, lo que tendrías que hacer es crear el código JavaScript al generar la página desde PHP, por ejemplo:
Código: Text
$javascript = "<script language=\"JavaScript\">\n";
$javascript .= " var porcentajes = new Array();\n";
$porcentajes = mysql_query("SELECT * FROM Porcentaje") or die(mysql_error());
while ($elem = mysql_fetch_array($porcentajes)) {
$javascript .= " porcentajes[".$elem['id_por']."] = ".$elem['valor'].";\n";
}
$javascript .= "</script>\n";
echo $javascript;
Bueno, eso es sólo un pequeño ejemplo, pero a partir de ahí ya deberías poder crear tus arrays y funciones. Si tienes alguna duda no tienes más que preguntar.
Salu2,
Avalon
fern1979
Nuevo Miembro
Mensajes: 5
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #2 en:
Martes 1 de Junio de 2004, 22:50 »
0
Hola Avalon:
Muchisimas grácias por contestar, me ha servido de mucha ayuda.
Ahora me toca seguir "investigando", puesto que mis conocimientos de PHP y JavaScript digamos que son muy modestos como para que me salgan las cosas a la primera (estoy empezando, soy novato 100%),,, pero lo conseguiré.
Repito, muchas grácias por darme una base y por ofrecerte para mas dudas...
Un saludo
fern1979@hotmail.com
fern1979
Nuevo Miembro
Mensajes: 5
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #3 en:
Miércoles 2 de Junio de 2004, 19:52 »
0
Hola otra vez a todos:
En principio el Script me funciona bastante bien, pero no del todo. Explico lo que he hecho:
He creado una "pagina" de prueba para probar el Script con 3 select.
El primero le he puesto que reciba los valores de la Base de datos cuando se pulse el 2 Select.
Lo que me ocurre es que me recorre 11 veces (hasta ahí todo perfecto) el while, pero en vez de ponerse un solo valor de la BD, se ponen todos, (incluso mas), como lo siguiente:
(, 100, 90, 80, ... 20, 10)
(, 100, 90, 80, ... 20, 10)
........
(, 100, 90, 80, ... 20, 10)
(, 100, 90, 80, ... 20, 10)
Se repite 11 veces, en cada uno de los resultados del Select
El primer detalle sería que el valor de "porcentaje[0]", le asigna a un valor "vació"
No me preocupa demasiado porque a ese valor lo puedo asignar manualmente como "---" (para indicar nulo), pero si se pudiera eliminar (que empiece desde el array 1, ) ....
El segundo detalle y mas importante (el que mas me "preocupa") es que en cada uno de los "resultados select", aparecen concatenados (los valores de la BD). Supongo que será un "cambio de línea" o algo así, pero estoy haciendo pruebas y me vuelvo loco..... (como dije anteriormente,,, estoy un poquito BASTANTE flojo en programación)
Estaría muy agradecido de que comentarais de que puede ser este problemilla
Muy agradecido de antemano...
fern1979@hotmail.com
P.D. El código que empleo es el siguiente, por si podéis ver mas fácilmente donde me equivoco...
Código: Text
<html>
<body>
<?php
$javascript = "<script language=\"JavaScript\">\n";
$javascript .= " var porcentajes = new Array();\n";
include("conect.php");
$link=Conectarse();
$porcentajes=mysql_query("select * from porcentaje",$link) or die (mysql_error());
while ($elem = mysql_fetch_array($porcentajes)) {
$javascript .="porcentajes[".$elem['nreg']."] = ".$elem['porcentaje_v'].";\n";
}
$javascript .= "</script>\n";
echo $javascript;
?>
<script language="JavaScript">
function funciona() {
//calculo número de porcentajes
numero = porcentajes.length
//marco número de porcentajes en el select
document.formulario.select1.length = numero
// para cada provincia del array, la introduzco en el select
for (i=0; i<numero; i++){
document.formulario.select1.options[i].value = porcentajes
document.formulario.select1.options[i].text = porcentajes
}
}
</script>
<form name="formulario">
<select name="select1">
<!-- option value ="-">- !-->
</select>
<select name="select3" onclick="funciona()">
</select>
</form>
</p>
</body>
</html>
Avalon
Miembro MUY activo
Mensajes: 448
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #4 en:
Miércoles 2 de Junio de 2004, 20:44 »
0
Hola ¿podrías pegar el código HTML/JavaScript que genera el script anterior? No acabo de ver donde está el problema, a ver si el código nos da alguna pista...
Salu2
Avalon
Miembro MUY activo
Mensajes: 448
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #5 en:
Miércoles 2 de Junio de 2004, 20:51 »
0
Para más información y acotar el problema sería de gran ayuda que ejecutaras este script y pegaras el resultado obtenido en pantalla
Código: Text
<html>
<body>
<?php
include("conect.php");
$link=Conectarse();
$porcentajes=mysql_query("select * from porcentaje",$link) or die (mysql_error());
while ($elem = mysql_fetch_array($porcentajes)) {
echo $elem['nreg']." - ".$elem['porcentaje_v']."<br>\n";
}
?>
</body>
</html>
Salu2,
Avalon
fern1979
Nuevo Miembro
Mensajes: 5
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #6 en:
Miércoles 2 de Junio de 2004, 23:22 »
0
Hola Avalon:
Lo primero agradecerte tu interés (otra vez). Y empezamos…
Ejecutando el Script que me propones, contiene la siguiente salida:
2 - 100
3 - 90
4 - 80
5 - 70
6 - 60
7 - 50
8 - 40
9 - 30
10 - 20
11 – 10
Nota: En la tabla la posición “1” esta en blanco (no existe).
Después el código generado por test.php (el código html/javascript) es:
Código: Text
<html>
<body>
<html>
<head>
<title>Title here!</title>
</head>
<body>
</body>
</html>
<script language="JavaScript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
//-->
</script>
<script language="JavaScript">
var porcentajes = new Array();
porcentajes[2] = 100;
porcentajes[3] = 90;
porcentajes[4] = 80;
porcentajes[5] = 70;
porcentajes[6] = 60;
porcentajes[7] = 50;
porcentajes[8] = 40;
porcentajes[9] = 30;
porcentajes[10] = 20;
porcentajes[11] = 10;
</script>
<script language="JavaScript">
function funciona() {
//calculo número de porcentajes
numero = porcentajes.length
//marco número de porcentajes en el select
document.formulario.select1.length = numero
// para cada provincia del array, la introduzco en el select
for (i=0; i<numero; i++){
document.formulario.select1.options[i].value = porcentajes
document.formulario.select1.options[i].text = porcentajes
}
}
</script>
<form name="formulario">
<select name="select1">
<!-- option value ="-">- !-->
</select>
<select name="select3" onclick="funciona()">
</select>
</form>
</p>
</body>
</html>
Y la captura (imagen) de lo que produce este código esta en la foto adjunta.
Muchas gracias
fern1979@hotmail.com
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Avalon
Miembro MUY activo
Mensajes: 448
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #7 en:
Jueves 3 de Junio de 2004, 00:09 »
0
La información que has adjuntado ha sido de gran ayuda
Para resolver el primer problema y que el array comience en la posición 1 solo tienes que sustituir las siguientes líneas de código
Código: Text
while ($elem = mysql_fetch_array($porcentajes)) {
$javascript .="porcentajes[".$elem['nreg']."] = ".$elem['porcentaje_v'].";\n";
}
por estas otras
Código: Text
$contador = 0;
while ($elem = mysql_fetch_array($porcentajes)) {
$javascript .="porcentajes[".$contador."] = ".$elem['porcentaje_v'].";\n";
$contador++;
}
Lo que se conseguía con el código antiguo es que el índice del array se correspondiera con el campo clave (creo) de la tabla
porcentaje
pero si no vas a necesitar esa información posteriormente a la hora de, por ejemplo, enviar el formulario puedes usar un contador perfectamente para generar el array, aunque en este caso lo mejor va a ser que el contador empiece a 0 (y por tanto también el array) para que luego no aparezca un espacio en blanco no deseado en el select (por eso he puesto $contador = 0 y no $contador = 1)
El segundo problema ocurre porque te falta indicar el índice del array al introducir los datos en el select
Debes sustituir el siguiente código
Código: Text
for (i=0; i<numero; i++){
document.formulario.select1.options[i].value = porcentajes
document.formulario.select1.options[i].text = porcentajes
}
por este otro
Código: Text
for (i=0; i<numero; i++){
document.formulario.select1.options[i].value = porcentajes[i];
document.formulario.select1.options[i].text = porcentajes[i];
}
Con eso debería quedar resuelto el problema.
Salu2,
Avalon
fern1979
Nuevo Miembro
Mensajes: 5
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #8 en:
Viernes 4 de Junio de 2004, 08:51 »
0
Perfecto!!!!!
Ya me funciona todo a las mil maravillas!!!!!
Un saludo y muchas gracias.
fern1979@hotmail.com
Slimer
Miembro activo
Mensajes: 59
Re: Como Pasar Un Array De Php A Javascript?
«
Respuesta #9 en:
Viernes 4 de Junio de 2004, 23:44 »
0
Hola Fern1979...
Parece ser que estamos haciendo un ejercicio similar!
De donde eres? Exactamente que es lo que vas a hacer?
Un saludo,
Slimer
-----------------------------------------------------
Quien desea aprender, pronto llegará a saber
-----------------------------------------------------
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Como Pasar Un Array De Php A Javascript?