Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2015, 10:12
dglypho
 
Fecha de Ingreso: noviembre-2014
Mensajes: 27
Antigüedad: 9 años, 4 meses
Puntos: 0
Problema con JavaScript

Hola a todos, tengo las siguientes dos tablas en MySQL:
Tabla Estanterias con los siguientes datos:
-Codigo
-Estantes (Numero de estantes totales)
-EstantesOcupados (Numero de estantes que hay ocupados)
-Ubicacion

Tabla Ocupacion con los siguientes datos:
-CodigoEstanteria
-LejaOcupada
-Objeto

Lo que quiero hacer es que al insertar objetos en esas estanterias mediante un formulario HTML me mueste en un select solo los estantes que esten libres. Poniendo un ejemplo imaginar que hay una estanteria con 6 estantes de los cuales estan ocupados el 2 y 3. El select por lo tanto deberia mostrar el estante 1,4,5 y 6.
De momento lo que he hecho ha sido mediante AJAX realizar una consulta a la tabla de estanterias para que me recoja el numero de estantes en funcion de la estanteria que haya elegido. Con ese numero me genero un bucle for en el que recorro todos los estantes que tiene la estanteria. El codigo quedaria de la siguiente manera:

Código Javascript:
Ver original
  1. var estanteria=document.getElementById('estanteria_libre').value;
  2.     objAjax=new AJAXCrearObjeto();
  3.     objAjax.open('GET','NumLejas.php?COD_ESTANTERIA='+estanteria,true);
  4.     objAjax.send();
  5.     objAjax.onreadystatechange=respuestaMostrarLejasLibres;
  6.  
  7. function respuestaMostrarLejasLibres(){
  8.     if(objAjax.readyState==4 && objAjax.status==200){
  9.         var miArray=objAjax.responseText;
  10.         mostrarArrayLejas(miArray);
  11.     }
  12. }
  13.  
  14. function mostrarArrayLejas(miArray){
  15.     var array_datos=JSON.parse(miArray);
  16.     for(var i in array_datos){
  17.         num_estantes=array_datos[i].NUM_ESTANTES;
  18.     }
  19.     var sel_estantes=document.getElementById('estantes_libres');
  20.     sel_lejas.innerHTML="";
  21.     var estanteria=document.getElementById('estanteria_libre').value;
  22.     alert(estanteria);
  23.     for(var j=1;j<=num_lejas;j++){
  24.         alert(j);
  25.         var opcion=document.createElement('option');
  26.         opcion.innerHTML=j;
  27.         opcion.setAttribute('value',j);
  28.         sel_lejas.appendChild(opcion);
  29.     }
  30. }

El código anterior lo que hace es sacar todos los estantes de la estanteria en un select de HTML y lo que yo quiero es que saque solo los que estan libres, pero lo unico que he conseguido es que saque todos, tanto libres como ocupados. Como puedo hacer para que saque todos los libres?

Si algo no se entiende ponerlo para que intente explicarlo mejor.

Muchas gracias por adelantado.