Foros del Web » Programando para Internet » Javascript »

Problema con JavaScript

Estas en el tema de Problema con JavaScript en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/10/2015, 10:12
 
Fecha de Ingreso: noviembre-2014
Mensajes: 27
Antigüedad: 9 años, 5 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.
  #2 (permalink)  
Antiguo 20/10/2015, 16:52
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Problema con JavaScript

Tu PHP NumLejas.php debería de devolver un array simple con el número de cada leja que esté sin ocupar, no la cantidad. Y eso se hace mediante consulta SQL de ambas tablas y un poco de lógica.

Luego el javascript solo tiene que dibujar tantos options como valores tiene dicho array, usando su valor como VALUE del input, supongo.

Etiquetas: ajax, formulario, funcion, html, js, php, select
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 19:48.