this.id No devuelve nada...

(1/1)

sReOn_1R:
Hola antes de nada os explico que es lo que quiero hacer,quiero hacer una sección en mi web para subir fotos,pero que esten organizadas en albums,entonces quiero que al pulsar en un album (con javascript) mande una variable al servidor por Ajax.. Y quiero mandar el id que se genera en PHP,bueno creo que me estoy liando un poco por eso os pongo mejor el codigo xD:
Citar

<?php
echo "
<html>
<head>
<link rel='stylesheet' type='text/css' href='css/uploadimage.css'>
<script language='javascript' src='js/functions.js'></script>
</head>";
session_start();
if (isset($_SESSION['idusuario'])) {
   //Incluimos el fichero de funciones
   include("functions.php");
   //Incluimos el fichero de funciones MySQL
   include("functions-mysql.php");
   //Conectamos con Mysql
   conexion_consultas();
   //Comprobamos que no existe ningun album de este usuario,si es asi,se crea uno por defecto
   $albums = "SELECT * FROM albums WHERE albums.idusuarios=".$_SESSION['idusuario']."";
   $albums = mysql_query($albums,$conexionmysql);
   $nalbums = mysql_num_rows($albums);
   echo $nalbums;
   if ($nalbums == 0) {
      //Se Crea uno por defecto llamando a la funcion new_album() que se encuentra en functions-mysql.php
      new_album();   
   } else {
      //Mostramos todos los albums
       while ($row = mysql_fetch_array($albums)) {
          echo "<div class='divcarpeta'>
                      <div class='carpeta' id='".$row[0]."' onclick='clickalbum(this.id);'>
                         <img src='img/carpeta.jpg' />
                      </div>
                      <div class='textocarpeta'>".$row[0]."
                      </div>
                   </div>";
       };
   };
   echo $nalbums;
};
?>
El problema es que donde está en negrita llamo a una funcion en javascript, para que reconozca cada id de un div (un div por cada album que tenga el usuario de la sesion) pero cuando ejecuta la funcion javascript para que me salga un alert,no consigo hacer que que lo reconozca,solo me sale un alert que me dice "undefined",no lo entiendo porque he definido el id del div.. aqui dejo ahora la funcion javascript:

Citar

function clickalbum (idclic) {
var idclic = this.id;
alert(idclic);
return idclic;
   };

PD: es un poco lioso porque lo he querido hacer tambien con PHP para poder reconocer cada album que tiene cada usuario,pero me parece que lo estoy haciendo bien :S. El tema lo pongo en la sección Web porque creo que es mas problema de javascript que del subforo de PHP

Franki:
Fijate que estas pasando el atributo id del div que has hecho clickable.

Código
onclick='clickalbum(this.id);'

En la función javascript el parametro idclic es el id del div clickado. Luego no puedes hacer esto:

Código
var idclic = this.id;
alert(idclic);
return idclic;
  };

Porque primero estas ocultando la variable idclic ya que la vuelves a definir despues con el valor this.id, este valor, el this.id es undefined ya que no puedes acceder de esa forma al objeto que provoca el evento click tal como lo estás haciendo.

prueba a borrar esa linea y probar esto y me cuentas:

Código
alert(idclic);
return true;
  };

sReOn_1R:
Muchisimas Gracias! tienes razon, creía que lo estaba haciendo bien pero no,ya funciona  ;D

Navegación

[0] Índice de Mensajes