Foros del Web » Programando para Internet » Javascript »

Problemas evento onmouseover en Opción de Select.

Estas en el tema de Problemas evento onmouseover en Opción de Select. en el foro de Javascript en Foros del Web. Hola a todos. Me estoy encontrando con un problema al disparar el evento onmouseover cada vez que entra en una opción de un Select. Me ...
  #1 (permalink)  
Antiguo 02/11/2011, 04:30
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 12 años, 9 meses
Puntos: 2
Problemas evento onmouseover en Opción de Select.

Hola a todos.
Me estoy encontrando con un problema al disparar el evento onmouseover cada vez que entra en una opción de un Select.
Me explico, o lo intento:
Tengo una Select con una serie de opciones y pretendo que cuando entro en cualquiera de estas opciones acceda al servidor y me devuelva una información que presento en pantalla. Esta información irá cambiando según voy posicionándome en una u otra opción, llamando a una función javascript que irá accediendo al servidor por medio de JQuery/Ajax, y a esta función se la llamará con un parámetro que es un indice del valor seleccionado. He comprobado que la select esta bien construida, con su valor correcto (el indice que comento anteriormente), pero el problema me está dando porque el valor que está enviándo siempre es de la anterior opción seleccionada, es decir, que siempre me está presentando los datos de la anterior select por la que he entrado.
Adjunto los scripts por si alguién me puede aclarar el porqué de este funcionamiento:

Este es el script inicial que realiza todo el proceso.

Código PHP:
Ver original
  1. <?php
  2.   include ('aprendetu_sc_fns.php');
  3.  
  4.  
  5.   ?>
  6.         <script src="jquery-1.6.4.min.js"></script>
  7.         <LINK rel="stylesheet" type="text/css" href="cuerpo.css">
  8.      
  9.   <?php
  10.  
  11.   $usuario = $_SESSION['usuario'];
  12.   $nivelUsuario = $_SESSION['nivelUsuario'];
  13.  
  14.   do_html_header("Bienvenido a Aprendetu Online");
  15.  
  16.   ?>
  17.  
  18. <script type="text/javascript">
  19.      
  20.     function showAsignaturas(str){
  21.         var xmlhttp;
  22.         if (str==""){
  23.             document.getElementById("priSelect").innerHTML="";
  24.             return;
  25.         }
  26.         if (window.XMLHttpRequest){
  27.             xmlhttp = XMLHttpRequest();
  28.         } else {
  29.             xmlhttp = ActiveXObject("Microsoft.XMLHTTP");
  30.         }
  31.         xmlhttp.onreadystatechange=function(){
  32.             if (xmlhttp.readyState==4 && xmlhttp.status==200){
  33.                 document.getElementById("priSelect").innerHTML=xmlhttp.responseText;
  34.             }          
  35.         }
  36.         xmlhttp.open("GET", "servAsignaturas.php?as="+str, true);
  37.         xmlhttp.send();
  38.         showTemas(" ");
  39.     }
  40.    
  41.     function showTemas(str1){
  42.         var xmlhttp1;
  43.         if (str1==""){
  44.             document.getElementById("segSelect").innerHTML="";
  45.             return;
  46.         }
  47.         if (window.XMLHttpRequest){
  48.             xmlhttp1 = XMLHttpRequest();
  49.         } else {
  50.             xmlhttp1 = ActiveXObject("Microsoft.XMLHTTP");
  51.         }
  52.         xmlhttp1.onreadystatechange=function(){
  53.             if (xmlhttp1.readyState==4 && xmlhttp1.status==200){
  54.                 document.getElementById("segSelect").innerHTML=xmlhttp1.responseText;
  55.             }          
  56.         }
  57.         xmlhttp1.open("GET", "servTemas.php?tem="+str1, true);
  58.         xmlhttp1.send();
  59.     }
  60.    
  61.     function informaPreguntas(str2){
  62.         $(document).ready(function(){
  63.             $("#preguntasTema").load("servPreguntas.php?tem="+str2);
  64.         })
  65.     }
  66.    
  67.     /*function salimosFuera(str2){
  68.         $(document).ready(function(){
  69.             $("#preguntasTema").css({
  70.                 display: none
  71.             });  
  72.         })
  73.     }*/
  74. </script>
  75.  
  76. </head>
  77.  
  78. <body>
  79.  
  80.     <!--<div id="contenidoCursos" align="left"></div>-->
  81.    
  82.     <table>
  83.     <tr><td height="15px"></td></tr>
  84.     <tr>
  85.         <th width="250px" align="left">Cursos</th>
  86.         <th width="250px" align="left">Asignaturas</th>
  87.         <th width="250px" align="left">Temas</th>
  88.     </tr>
  89.     <tr>
  90.     <td>
  91.     <div id="sel">
  92.         <select name="listaCursos" onchange="showAsignaturas(this.value)">
  93.             <?php include "servCursos.php" ?>      
  94.         </select>
  95.     </div>
  96.     </td>
  97.     <td>
  98.     <div id="priSelect">
  99.         <select name="listaAsignaturas" onchange="showTemas(this.value)">
  100.             <option>Selecciona una asignatura</option>
  101.         </select>
  102.     </div>
  103.     </td>
  104.     <td>
  105.     <div id="segSelect">
  106.         <select name="2" onmouseover="informaPreguntas(this.value)">
  107.             <option>Selecciona un tema</option>
  108.         </select>  
  109.     </div>
  110.     </td>
  111.     <td><div style="width: 200px; background-color: #ff8800; padding-left: 10px;" id="preguntasTema"></div></td>
  112.     <td>
  113.         <div id="boton">
  114.             <input type="button" value="Aceptar" />
  115.         </div>
  116.     </td>
  117.     </tr>
  118.     </table>
  119.  
  120. </body>
  121. </html>


Y esta es la select que carga los distintos temas que quiero presentar:

Código PHP:
Ver original
  1. <?php
  2.     include ('aprendetu_sc_fns.php');
  3.     echo '<select name="temas" onmouseover="informaPreguntas(this.value)">';
  4.     $conn = db_connect();
  5.     $query = "select * from temas";
  6.     $result = @mysql_query($query);
  7.     echo "<option>Selecciona un tema</option>";
  8.     while($fila = mysql_fetch_array($result)){
  9.         if ($fila['idasignatura'] == $_GET['tem']){
  10.             echo "<option value='".$fila['idtema']."'>".$fila['desctema']."</option>";
  11.         }
  12.     }
  13.     mysql_close($conn);
  14.     echo '</select>';
  15. ?>


Muchas gracias anticipadas y saludos.
  #2 (permalink)  
Antiguo 02/11/2011, 05:42
 
Fecha de Ingreso: julio-2011
Mensajes: 91
Antigüedad: 12 años, 9 meses
Puntos: 2
Respuesta: Problemas evento onmouseover en Opción de Select.

Hola de nuevo.
Existen otras posibilidades de poder realizar esto. Una es con el evento onclick, aunque el funcionamientos no sería exactamente el mismo, y otro con el evento onmousemove que si se prodría llegar al mismo funcionamiento.
Aunque este último evento se lanzaría siempre que movamos el ratón por encima del elemento que queramos controlar, existe la posibilidad de comprobar si nuestro value ha cambiado con la finalidad de que no esté realizando accesos al servidor continuamente para mismos resultados.

Código Javascript:
Ver original
  1. function informaPreguntas(str2){
  2.         if (str2Anterior != str2){
  3.             $(document).ready(function(){
  4.                 $("#preguntasTema").load("servPreguntas.php?tem="+str2);
  5.                 str2Anterior = str2;
  6.             })
  7.         }
  8.     }

Pero lo que no entiendo es porqué no funciona el evento onmouseover.
Saludos.

Etiquetas: ajax, evento, funcion, html, jquery, js, onmouseover, php, botones
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.