Vamos a ver,si que es posible escribir desde javascript el valor de una variable de sesion....
Pongo el codigo simplificado para que vean:
Código:
<?php
session_start();
function dibujar(){
//accedo por el indice del inmueble en el array de los inmuebles
//se ejecuta el if si no es una alta
if($_GET['indice'] != -1 && $_GET['indice'] != ""){
$_SESSION['indice'] = $_GET['indice'];
$tamano = sizeof($_SESSION['s_inmuebles'][$_GET['indice']]['Imagenes']);
$_SESSION['id'] = $_SESSION['s_inmuebles'][$_GET['indice']]['Id_Inmueble'];
if(sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]) == 0 && $_SESSION['vacio'] != 1){
$_SESSION['s_imagenes_aux'][$_SESSION['id']] = $_SESSION['s_imagenes'][$_SESSION['id']];
}
}else{
$_SESSION['indice'] = -1;
}
$_SESSION['total'] = sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]);
echo "total ".$_SESSION['total'];
if($_POST['subir'] == 1){
cargar_imagen();
}
//numero total de imagenes que se pueden subir de un inmueble
$total = 8;
$tamano = sizeof($_SESSION['s_imagenes_aux'][$_SESSION['id']]);
$mostrados = 1;
for($i=1; $i<=$total; $i++){//construye la tabla para todas la imagenes
if($i <= $tamano){
$foto = $_SESSION['s_imagenes_aux'][$_SESSION['id']][$i - 1]['Ruta_Thumb'];
$comando = "javascript:eliminarForm(".($i - 1).");";
}else{
$foto = "../imaxes/thumb/default_inmueble.jpg";
$comando = "";
}
if($mostrados == 1){//si es la primera foto creo una fila e introduzco la foto
echo"<tr>
<td width='25%' class='inputtabla'>
<img name='imgFoto$i' width='100' height='90' src='$foto'><br>";
require_once ('../modulos/funciones.php');
botonpeque($comando,'Borrar');
echo"</td>";
}else{
if($mostrados % 5 == 0){//si es la ultima foto de una fila cierro la fila y creo otra fila
echo"</tr>
<tr>
<td width='25%' class='inputtabla'>
<img name='imgFoto$i' width='100' height='90' src='$foto'>";
require_once ('../modulos/funciones.php');
botonpeque($comando,'Borrar');
echo"</td>";
}else{
echo"<td width='25%' class='inputtabla'>
<img name='imgFoto$i' width='100' height='90' src='$foto'>";
require_once ('../modulos/funciones.php');
botonpeque($comando,'Borrar');
echo"</td>";
}
}
$mostrados++;
if($mostrados == 5){
$mostrados = 1;
}
}
echo"</tr>";
}
?>
<script>
function subirForm(){
alert("<?php echo $_SESSION['total']?>");
var tamano = <?php echo $_GET['total'];?>;
alert(tamano);
if(tamano >= 8){
alert("Este inmueble ya tiene todas las imágenes posibles, 8.");
}
}
</script>
Hay mas codigo pero no es necesario que lo ponga porque con esto creo que basta.En la funcion dibujar recogo el valor de "indice" que me viene por GET y en $_SESSION['total'] almaceno el tamaño de un array y luego lo escribo,esto lo hace bien.
En la funcion subirForm realizo el alert de esa variable de sesion y cual es mi sorpresa que el valor es difrente la primera vez que cargo la pagina,ya que me mantiene el valor antiguo.
Es decir primera vez que abro la pagina,en la variable de sesion de la funcion php el total me escribe por ejemplo "5".Cierro la ventana y luego la vuelvo a abrir y ahora con otros parametros me escribe "3" pero en la funcion subirForm el alert me saca "5"!!!!!
Por que??
Cual seria la solucion??