Foros del Web » Programando para Internet » Javascript »

Leer un array hecho en php

Estas en el tema de Leer un array hecho en php en el foro de Javascript en Foros del Web. Estoy intentado hacer un script que me recorra un array hecho con php. Por ahora el siguiente código me funciona: //Creación de las variables $a, ...
  #1 (permalink)  
Antiguo 19/08/2005, 10:13
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Leer un array hecho en php

Estoy intentado hacer un script que me recorra un array hecho con php. Por ahora el siguiente código me funciona:

//Creación de las variables $a, $b, $c para el manejo de las capas
$i = 0;
reset ($tabla);
while ($i < count($tabla))
{
$a = $tabla[$i];
$i++;
next ($tabla);
$b = $tabla[$i];
$i++;
next ($tabla);
$c = $tabla[$i];
$i++;
}


function ver(vis,a,b,c)
{
a.style.visibility="hidden";
b.style.visibility="hidden";
c.style.visibility="hidden";
vis.style.visibility="visible";
}


....
<th scope="col" onClick="MM_callJS('ver(<?php echo $actual; ?>,<?php echo $a; ?>,<?php echo $b; ?>,<?php echo $c; ?>)')"><?php echo $actual; ?></th>

Este código funciona


Evidentemente quiero evitar el pasar tantas variables y, sobre todo que si cambia el array $tabla hecho a partir de un recordset, no se haya que tocar el código para que todo siga funcionando

He probado el siguiente código pero me da error:

<script>
function ver(vis,$tabla)
{
for (i=0;i<count($tabla);i++)
{
$tabla[i].style.visibility="hidden";
}
vis.style.visibility="visible";
}
</script>

....
<th scope="col" onClick="MM_callJS('ver(<?php echo $actual; ?>,<?php $tabla ?>)')"><?php echo $actual; ?></th>

Me parece que no estoy sabiendo trasladar el array desde php a JS, o no estoy sabiendo recorrerlo para que en lugar de $tabla[i], me ponga el nombre almacenado en cada posición
  #2 (permalink)  
Antiguo 20/08/2005, 00:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Saludos, Haz lo siguiente:

En PHP,en lugar de guardar los valores en un array PHP, guardalas en una cadena con formato de array pero javaScript, ejemplo.

$ArrayJavascript="'".$a."', '".$b."', '".$c."';

suponiendo que $a=1, $b=2 y $c=3, la cadena $ArrayJavascript quedaria asi:

$ArrayJavascript="'1','2','3'";

y en javascript haces lo siguiente:

arrayJavascript= new Array (<? echo $ArrayJavascript; ?>);

y listo!,ya tienes tu array de php a javascript.

suerte y hasta luego....
  #3 (permalink)  
Antiguo 20/08/2005, 15:30
 
Fecha de Ingreso: marzo-2005
Ubicación: Sevilla
Mensajes: 277
Antigüedad: 19 años, 1 mes
Puntos: 2
weeee, eres mi dios!!! andaba mucho tiempo buscando algo asi :)
  #4 (permalink)  
Antiguo 24/08/2005, 11:27
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
He estado probando, y no lo consigo. Pongo el código que he empleado a ver si alguno me puede decir dónde estoy "metiendo la pata"

$capas es una variable de PHP que tiene

el resultado de mostrar la variable es

echo $capas = SextEPB, SextEPA, QuinEPB, QuinEPA, CuarEPB, CuarEPA, TerEPB, TerEPA, SegEPB, SegEPA, PrimEPB, PrimEPA

Y también he probado con

echo $capas = 'SextEPB', 'SextEPA', 'QuinEPB', 'QuinEPA', 'CuarEPB', 'CuarEPA', 'TerEPB', 'TerEPA', 'SegEPB', 'SegEPA', 'PrimEPB', 'PrimEPA'


El script de JS es:

function visu(vis)
{
$capas = new Array (<? echo $capas; ?>);
for($i=0;$i<count($capas);$i++)
{
$capas[$i].style.visibility="hidden";
}
vis.style.visibility="visible";
}

pero no funciona


La llamada es:

onClick="MM_callJS('visu(PrimEPA)')

y también he probado con esta otra

onClick="MM_callJS('visu(PrimEPA), <?echo ($capas);?>')

y por tanto el script lo he variado a

function visu(vis,$capas)
....


pero no funciona
  #5 (permalink)  
Antiguo 24/08/2005, 21:24
 
Fecha de Ingreso: diciembre-2004
Mensajes: 272
Antigüedad: 19 años, 4 meses
Puntos: 4
Pues si hay varios detalles ahi...

Saludos, bueno,en este punto:

////////////////////////

echo $capas = SextEPB, SextEPA, QuinEPB, QuinEPA, CuarEPB, CuarEPA, TerEPB, TerEPA, SegEPB, SegEPA, PrimEPB, PrimEPA

Y también he probado con

echo $capas = 'SextEPB', 'SextEPA', 'QuinEPB', 'QuinEPA', 'CuarEPB', 'CuarEPA', 'TerEPB', 'TerEPA', 'SegEPB', 'SegEPA', 'PrimEPB', 'PrimEPA'

///////////////////////


las variables estan mal inicializadas, tanto en el primer como en el segundo ejemplo, de hecho, php te debio haber marcado un error de sintaxis, ademas que "echo" es para imprimir en pantalla, por lo cual no necesitamos dar salida a pantalla, si no inicializar la variable $capas con una cadena, dicha cadena estara estructurada de tal manera que al momento de darle salida con echo, javascript la interprete como elementos de un array. Entonces la variable $capas nos quedaria asi:

$capas= "'SextEPB', 'SextEPA', 'QuinEPB', 'QuinEPA', 'CuarEPB', 'CuarEPA', 'TerEPB', 'TerEPA', 'SegEPB', 'SegEPA', 'PrimEPB', 'PrimEPA'";


ahora, en este punto:

//////////////////

El script de JS es:

function visu(vis)
{
$capas = new Array (<? echo $capas; ?>);
for($i=0;$i<count($capas);$i++)
{
$capas[$i].style.visibility="hidden";
}
vis.style.visibility="visible";
}


////////////////


No se si javascript te marque error de sintaxis(yo creo que si), porque yo nunca he declarado una variable en javascript con un nombre que empieze con signo de $, ya que esto solo es propio de PHP, pero si es asi, el unico error que veo en la funcion es eso, simplemente quitale el signo $ a todas tus variables de la funcion, excepto a la que esta dentro del codigo de apertura de PHP(<? ?>).

ahhh no espera.... otro posible error en la funcion tambien es al momento de aplicar el atributo "visible" a la capa, donde pusiste:


//////////////

$capas[$i].style.visibility="hidden";

vis.style.visibility="visible";

/////////

esto que estas haciendo,que con las modificaciones que te di quedaria asi:

////////////


capas[i].style.visibility="hidden";

vis.style.visibility="visible";

///////////

creo que aqui, javascript tratara de interpretar que "capas[i]" es el nombre de las capas, por lo cual es falso, ya que me supongo el nombre de las capas es lo que contiene el array, asi que te sugiero que a las capas les pongas un "ID" con el nombre de los elementos del array que les corresponda a cada capa, ademas, tambien te falto anteponer "document", y despues de declarar un "ID", utiliza "getElementById" para referirte a las capas, entonces si no se me pasa algo,esto te quedaria asi:

////////////////

function visu(vis)
{
capas = new Array (<? echo $capas; ?>);
for(i=0;i<count(capas);i++)
{
document.getElementById[capas[i]].style.visibility="hidden";
}
document.getElementById[vis].style.visibility="visible";
}

//////////////


y por ultimo, donde llamas a la funcion no ocupas todo este rollo:

////////////

La llamada es:

onClick="MM_callJS('visu(PrimEPA)')

y también he probado con esta otra

onClick="MM_callJS('visu(PrimEPA), <?echo ($capas);?>')



///////////

simplemente pon:

onClick="visu(PrimEPA)";


bueno, espero haberte ayudado,cualquier duda o comentario rebota de nuevo este mensaje, hasta luego y suerte....!
  #6 (permalink)  
Antiguo 25/08/2005, 09:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 9 meses
Puntos: 0
Sigue sin funcionar, y no lo entiendo pues todo me parece lógico. Te pongo lo que he hecho (lo que me dijiste) y los resultados obtenidos

function visi2(vis)
capas = new Array (<? echo $capas2; ?>);
for(i=0;i<count(capas);i++)
{
oculta = capas[i];
document.getElementById[oculta].style.visibility="hidden";
}
{
document.getElementById[vis].style.visibility="visible";
}


La variable de php que he construido es $capas2. La he constuyo a partir de un recordset y el resultado de hacer un echo de lo que aparece en esa variable es:

'SegBachB','SegBachA','PrimBachB','PrimBachA','Cua rESOB','CuarESOA','TerESOB','TerESOA','SegESOB','S egESOA','PrimESOB','PrimEPA','PrimEPB','SegEPA','S egEPB','TerEPA','TerEPB','CuarEPA','CuarEPB','Quin EPA','QuinEPB','SextEPA','SextEPB','PrimESOA'


Y si busco en "Ver código fuente" esto es lo que aparece, con lo cual efectivamente he construido el array en capas (o al menos eso creo)

function visi2(vis)
capas = new Array ('SegBachB','SegBachA','PrimBachB','PrimBachA','Cu arESOB','CuarESOA','TerESOB','TerESOA','SegESOB',' SegESOA','PrimESOB','PrimEPA','PrimEPB','SegEPA',' SegEPB','TerEPA','TerEPB','CuarEPA','CuarEPB','Qui nEPA','QuinEPB','SextEPA','SextEPB','PrimESOA');
for(i=0;i<count(capas);i++)
{
oculta = capas[i];
document.getElementById[oculta].style.visibility="hidden";
}
{
document.getElementById[vis].style.visibility="visible";
}

He introducido la asignación oculta = capas[i]; porque tampoco funcionaba con document.getElementById[capas[i]].style.visibility="hidden";

Evidentemente las capas tienen esos nombres

<div id='PrimEPA'style="visibility:hidden; position:absolute; width:555px; height:380px; overflow:auto">
...

Pero sigue sin funcionar, da error del JS

Es como si no recorriera el array
  #7 (permalink)  
Antiguo 04/03/2010, 14:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 24
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer un array hecho en php

hola soy nuevo en esto de php y quiero saber como puedo leer un txt, buscar palabras dentro de este archivo y recorrer cada linea de este archivo a traves de un matriz, de ir guandando en una variable el total de palabras encontradas por cada bloque(ejemplo: linea 1 hasta la 10).

se los agradesco un monton no se como hacerlo
  #8 (permalink)  
Antiguo 04/03/2010, 14:57
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: Leer un array hecho en php

Hola davidmr10

Te recuerdo el aviso que había al final de este tema y que parece que no has leído o no le has hecho ni caso.



Tema cerrado.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 03:38.