Javascript + PHP + Array

marioNadal
20 de Mayo del 2004
Hola gente.
El problema es el siguiente:
Tengo un bucle en PHP donde leo un fichero y coloco los elementos de él
dentro de un array:
Código:

if($i>1){
$miRuta2="admin/Set/CC/".$referencia;
$handle2=opendir ($miRuta2);
$j=0;
while ($fichero=readdir($handle2)) {
if ($fichero != "." && $fichero != "..") {
$file=$miRuta."/".$fichero;
$imagen[$j]=$file;
$imagen2=array($imagen[$j]);
echo $imagen[$j]."<br>";
$j++;
}
}
closedir($handle2);
}

...perfecto hasta ahí, en pantalla me tira la información que necesito.
Ahora, el problema lo tengo cuando esta información la quiero utilizar en
Javascript. Necesito tener estos datos disponibles dentro de un script, pero
no puedo solucionarlo.
Código:

echo"<script language='JavaScript' type='text/JavaScript'>
var doc=newArray(".$i.");
for(i=0;i<=".$i.".length -1;i++){
doc[i]=".$imagen[i+1].";
}
</script>";

...y al abrir el código fuente de dicha página, el resultado es:

var doc=newArray(4);
for(i=0;i<=4.length -1;i++){
doc[i]=admin/Set/CC/1001/1084478244.jpg;
}

...o sea, el problema es porque no puedo lograr que me tire todas las
imágenes que tengo, ..o sea así, por ejemplo:

doc[0]=admin/Set/CC/1001/1084478244.jpg;
doc[1]=admin/Set/CC/1001/1084478245.jpg;
doc[2]=admin/Set/CC/1001/1084478246.jpg;
doc[3]=admin/Set/CC/1001/1084478247.jpg;

..para así poder disponer de ellas?
Desde ya, muchas gracias!!
Mario Nadal

rargueso
20 de Mayo del 2004
Casi lo tenias:

echo"<script language='JavaScript' type='text/JavaScript'>
var doc=newArray(".$i.");";

for(i=0;i<=$i;i++){
echo "doc[".$i."]=".$imagen[i+1];
}
echo "</script>";

Genera una linea por cada entrada en el arry de javascript y no un for y listo.

Si te ha servido lee el pie de este post ;-)

------------------------------------------------
Visitanos en www.Aulaphp.com
Tu comunidad de PHP
------------------------------------------------

marionadal
20 de Mayo del 2004
Gracias Rargueso por tu respuesta. Me ha servido lo que me has mandado, pero el problema que tengo ahora es que la función en javascript no funciona. O no funciona o, seguramente, esté haciendo algo mal yo. Te paso el código para que lo mires y me digas si sabes que puede ser el ffalo.
Desde ya, muchísimas gracias!!
Mario

$miRuta="admin/Set/CC/".$referencia;
$handle=opendir ($miRuta);
for($i=-2;readdir($handle);$i++);
closedir($handle);
//Si hay más de uno, los leo
$miRuta="admin/Set/CC/".$referencia;
$handle=opendir ($miRuta);
for ($i=-2;readdir($handle);$i++) ;
closedir($handle);
//Si hay más de uno, los leo
if($i>1){
$miRuta2="admin/Set/CC/".$referencia;
$handle2=opendir ($miRuta2);
$j=-1;
echo "<script language="JavaScript" type="text/JavaScript">rn";
echo "var doc=new Array(); rn";
while ($fichero=readdir($handle2)) {
if ($fichero != "." && $fichero != "..") {
$file=$miRuta."/".$fichero;
$imagen[$j]=$file;
echo "doc[".$j."]='".$file."';rn";
}
$j++;
}

$miFuncion ="function next() {rn";
$miFuncion .=" var a=0;rn";
$miFuncion .=" var b=".$i.";rn";
$miFuncion .=" if( a < b){rn";
$miFuncion .=" document.images.show.src = doc[a+1];rn";
$miFuncion .=" }rn";
$miFuncion .=" a++;rn";
$miFuncion .=" }rn";
echo $miFuncion;
echo "</script>rn";
closedir($handle2);
}
////////Acá hay una parte de código que dibuja una tabla, y después sigue aqui://///

}if($foto!='no' && $i>1){
$eso= $imagen[1];
$fotografia=$eso;
$tam=GetImageSize($imagen[1]);
$ancho=$tam[0];
$alto=$tam[1];
$porAncho=$ancho/100;
$alto1=$alto/$porAncho;
$dire="JavaScript:MM('fotos.php?id=".$fotografia."&ancho=$ancho&alto=$alto&ref=$referencia','adasd','width=$ancho,height=$alto')";
$next="Javascript:next()";

echo "<td width='105' rowspan='2' align='center' class='textoHora'><img src='$eso' name='show' width=100 height=$alto1 border=0><br><br><a href='#' onClick=$next><img src='Imagenes2/flechaIzq.gif' border=0></a><img src='Imagenes2/flechaDer.gif' border=0></td>";