Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2013, 17:20
burlock_spock
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 8 meses
Puntos: 0
Recargar o no recargar con javascript

Hola,
Estoy haciendo un pequeño sistema de ticketing y, en su página inicial, quiero incluir un select que permita ver una tabla de los tickets:
-Asignados al grupo del usuario
-Creados por el usuario
-Creados por cualquier usuario del grupo del usuario
Es algo como lo que ya tienen otras herramientas profesionales. Hasta ahora estaba usando JavaScript y Ajax para que, onchange en mano, no fuera necesario pinchar en ningún "submit" y tampoco fuera necesario recargar la página. Lo de tener que recargarla o no me da igual para el proyecto. El problema viene en que, al recargar la página, sea cual sea el objeto de la página que quiera enviar al servidor no consigo actualizar la página (todo o parte) bien.
Me explico algo mejor, con unos <div> tengo separada la pantalla en:
-Barra de título (arriba)
-Bloque Opciones/Enlaces (a la izquierda)
-Resto de la pantalla
Con el código que tengo (el que está mal y quiero corregir sin saber aún cómo), cuando salta el onChange se recarga toda la pantalla (título, bloque y resto) en el espacio que hay para el resto. Este es el código:
Código PHP:
Ver original
  1. <form name="ticketViews" id="ticketViews" action="">
  2.     <select name="optionsUnfold" id="optionsUnfold" onchange="handleTicketViews(this.form)">
  3.         <option value="1">Asignados a mi grupo</option>
  4.         <option value="2">Creados por mi</option>
  5.         <option value="3">Creados por mi grupo</option>
  6.     </select>      
  7. </form>

Código Javascript:
Ver original
  1. function handleTicketViews(){
  2.     userList = document.getElementById("optionsUnfold");
  3.     userValue = userList.options[userList.selectedIndex].value;
  4.     url = "Tickets.php?handle="+userValue;
  5.     view.open("GET", url, true);
  6.     view.onreadystatechange = viewResponse;
  7.     view.send(null);
  8. }
  9.  
  10. function viewResponse(){
  11.     if(view.readyState == 4){
  12.         if(view.status == 200){
  13.             document.getElementById("ticketViews").innerHTML = view.responseText;
  14.         }
  15.         else{
  16.             alert('Ha ocurrido un error: '+view.statusText);
  17.         }
  18.     }
  19. }

Igual me he empeñado en hacerlo en JavaScript sin tener por qué, cuando lo que realmente quiero es (lo explico en modo bruto):
1.Detectar que el usuario ha seleccionado/cambiado una opción sin tener que apretar botón alguno (ni de hacer nada más)
2.Capturar el valor/texto (mejor el valor) de la selección
3.En base a la selección volver a mostrar la misma página, pero con el contenido de la tabla arriba indicada actualizado
Claro está, en base a la selección hecha por el usuario voy a hacer una query MySQL u otra para extraer dichos datos.

¿Veis donde estoy metiendo la pata? ¿Lo haríais de otra manera?
Gracias por anticipado.