elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Cambiar contenido div con ID variable javascript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cambiar contenido div con ID variable javascript  (Leído 7,210 veces)
javirk

Desconectado Desconectado

Mensajes: 102


Ver Perfil
Cambiar contenido div con ID variable javascript
« en: 1 Mayo 2012, 12:18 pm »

Hola, tengo un problema que no sé solucionar, y que me da el siguiente error según la consola de Chrome: "Uncaught TypeError: Cannot set property 'innerHTML' of null"
Tengo esto en el código:
Código
  1. <html>
  2. <head>
  3.  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
  4. <script type="text/javascript">
  5. function like(userid, peliid, mddcartel)
  6. {
  7.  if (window.XMLHttpRequest)
  8.  {// code for IE7+, Firefox, Chrome, Opera, Safari
  9.  xmlhttp=new XMLHttpRequest();
  10.  }
  11. else
  12.  {// code for IE6, IE5
  13.  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  14.  }
  15. xmlhttp.onreadystatechange=function()
  16.  {
  17.  if (xmlhttp.readyState==4 && xmlhttp.status==200)
  18.    {
  19.    document.getElementById(mddcartel).innerHTML=xmlhttp.responseText;
  20.    }
  21.  }
  22.  xmlhttp.open("GET", "like.php?uid="+userid+"&pid="+peliid, true);
  23.  xmlhttp.send();
  24. }
  25.  
  26. </script>
  27. </head>
  28. <body>
  29. <?php
  30. $gusta = FALSE;
  31. $userid = "1";
  32. $peliid = "3";
  33. $mddcartel = md5($peliid);
  34.  echo "<div id='$mddcartel'>";
  35.  echo "<a href='#' onclick='like($userid, $peliid, $mddcartel) '>Me gusta</a>";
  36.  echo "</div>";
  37. ?>
  38. </body>
  39. </html>
  40.  
Total, que tengo un div con nombre variable (aquí no, pero en el completo sí). Le paso a la función like el nombre de ese div como tercer parámetro, y se lo pongo en la función ajax a 
"document.getElementById(mddcartel).innerHTML=xmlhttp.responseText;" Pero no me coge eso de "mddcartel" como una variable, sino como el nombre del div, y yo no quiero eso. Si cambio la línea esa y donde pone mddcartel pongo el nombre del div entre comillas me va bien.

Un saludo y gracias de antemano!


En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Cambiar contenido div con ID variable javascript
« Respuesta #1 en: 5 Mayo 2012, 19:22 pm »

No estoy muy seguro pero, ¿puede ser que se deba a error de las instrucciones echo? o mejor dicho, que no estés imprimiendo el contenido de las variables si no el nombre de la variable en sí mismo.

Yo quizás las dejaría de esta forma:

Código
  1. $gusta = FALSE;
  2. $userid = "1";
  3. $peliid = "3";
  4. $mddcartel = md5($peliid);
  5.  echo '<div id="'.$mddcartel.'">';
  6.  echo '<a href="#"' onclick="like('.$userid.', '.$peliid.', '.$mddcartel.')">Me gusta</a>';
  7.  echo '</div>';
  8.  

Es decir, concatenar a la cadena que se imprimirá el valor de las variables.

Creo que usando comilla simple (') al escribir comillas dobles no afectaba a la cadena, pero no estoy muy seguro. De todos modos si las comillas dobles afectan al lugar de terminación de la cadena deberías poner delante un \, es decir:

Código
  1. $gusta = FALSE;
  2. $userid = "1";
  3. $peliid = "3";
  4. $mddcartel = md5($peliid);
  5.  echo '<div id=\"'.$mddcartel.'\">';
  6.  echo '<a href=\"#\"' onclick=\"like('.$userid.', '.$peliid.', '.$mddcartel.')\">Me gusta</a>';
  7.  echo '</div>';
  8.  

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines