Foros del Web » Programando para Internet » Javascript »

Cambiar input dependiendo de una lista desplegable traida de base de datos

Estas en el tema de Cambiar input dependiendo de una lista desplegable traida de base de datos en el foro de Javascript en Foros del Web. Gente tengo un problema que he de solucionar facilmente con ustedes Explico desde el principio: Estoy haciendo un software bastante grande para uso propio y ...
  #1 (permalink)  
Antiguo 30/10/2012, 16:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Cambiar input dependiendo de una lista desplegable traida de base de datos

Gente tengo un problema que he de solucionar facilmente con ustedes

Explico desde el principio:

Estoy haciendo un software bastante grande para uso propio y tengo un área que viene a ser "Control de Stock" ya tengo el formulario que carga el stock, ahora tendría que hacer el proceso inverso, es decir, el form donde indico que material voy a sacar de la base de datos, y en que cantidad, he ahí el problema, traigo desde la base de datos de materiales, en un select por separado cada material, mientras solucione el problema para el material llamado BALASTOS ya podré hacer los demás selects para los demás materiales.

dicha tabla balastos contiene los siguientes datos:
ID | NOMBRE | CANTIDAD | PRECIO | PRECIOTOTAL | TIPO | MARCA | OBSERVACIONES

Traigo a una lista desplegable (select) todos NOMBRES de los balastos cargados.

Esto lo hago de la siguiente manera:

Código PHP:
                    <?php
                    $con 
mysql_connect($servidor$usuario$contrasena) or die("Problemas al conectar");
                    
mysql_select_db($baseDeDatosStock$con) or die("Problemas al conectar a la base de datos");

                    
$balasto mysql_query("SELECT * FROM balasto")
                            or die(
"problemas en consulta:" mysql_error());
                    
?>
          <form name="gastobalasto" action='../php/gastosBalasto.php' method='POST'>
              <table>
                  <tr>
                      <td width="300">
<select name="insumos" required="required">
    <option value="">Selecciona un balasto de la lista</option>
                            <?php
                            
while ($campobalasto mysql_fetch_array($balasto)) { ?>
                                
<option value="<?php echo $campobalasto['id']; ?>"><?php echo $campobalasto['nombre']; ?></option>

                    <?php ?>
</select>
                          </td>
                          <td>
               <input type='submit' value='Registrar Gastos' class="verde">
               </td>
              </tr> 
              </table>
              </form>
ese código lo que hace es mostrar la lista con todos los balastos cargados, y al lado un input que lo envía a un php.
algo así:



(casi me infarto, acabo de cerrar la ventana del navegador sin querer, por suerte no se borró todo lo que escribí aquí arriba)

LO QUE YO NECESITO

Es un input que dependa del select elegido. ¿Por qué? Porque quiero agregarle el atributo Max="" a la etiqueta del input, lo cual me permitiría traer mediante mysql y php el número de CANTIDAD de la base de datos, para que sea imposible ingresar un valor mayor de los que en realidad hay en la base de datos. Es decir, si tengo 30 balastos llamados "Balastos grandes" y que al clickear en la lista desplegable "Balastos Grandes" me muestre un input cuyo número máximo en la etiqueta max, sea de 30, y una pequeña leyenda al lado que indique también el número máximo, y recién ahi luego de eso, que aparezca el Submit, o sea que quedaría algo así:



Todo esto sería para asegurarme que no se van a utilizar más balastos de los que hay...

Espero haberme hecho entender, tiene que haber alguna función en Javascript que cambie el max del html y la leyenda, dependiendo de la CANTIDAD que figura en la base de datos del material, espero encarecidamente su ayuda, muchas gracias...
  #2 (permalink)  
Antiguo 30/10/2012, 16:25
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

estás hablando de select dependientes. esto se hace con ajax. en este foro se ha tratado cientos de veces
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 30/10/2012, 21:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

He visto algo de select dependientes, pero esto en realidad es un tanto diferente ya que el dependiente es el input number que depende de la lista desplegable, y más se me complica al tener que traer datos de la base de datos.
  #4 (permalink)  
Antiguo 31/10/2012, 18:08
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

mira, lo que podes hacer es lo siguiente.

Código PHP:
Ver original
  1. echo '<script> var elemento = ;
  2. $result = mysql_query("SELECT * FROM balasto");
  3. while(($resultArray[] = mysql_fetch_assoc($result)) || array_pop($resultArray));
  4. echo json_encode()."</script>";

con ese codigo en tu pagina de php, logras poner la variable elemento, en un objeto de javascript, luego tendras que ejeutar una funcion en la pagina que tu crees para que modifique a el form, y otra que al cambiar el select modifique el texto y el input

disculpa estoy corto de tiempo un saludo
  #5 (permalink)  
Antiguo 01/11/2012, 14:59
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

vaya par de días que llevo. o leo mal, o leo a medias

Cita:
Iniciado por MiguelNajdorf Ver Mensaje
Es un input que dependa del select elegido.
primero decirte que select dependientes es sólo una terminología. la dependencia puede ser
Cita:
select --> select
select --> input
input ---> select
etc....
pero en este caso no te va hacer falta usar ajax

en lugar de extraer los campos id y nombre, extrae los campos cantidad y nombre.
cantidad para el value de los option. entonces en la etiqueta select añades el evento onchange para asignar al input number el valor del option seleccionado
Cita:
onchange="document.getElementById('input_number'). value = this.value"
prosigo con algo que quizás desconozcas. el input number de html5 no es compatible con algunos navegadores. entonces lo que has de hacer es emularlo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #6 (permalink)  
Antiguo 09/11/2012, 15:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 39
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

estuve a full rindiendo Java en la facu y tuve que postergar este tema... no conozco de javascript? como sería el código que me permita hacer lo que necesito? y respecto al input number no me molesta la incompatibilidad, que sea un input text me da lo mismo...
  #7 (permalink)  
Antiguo 09/11/2012, 15:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Cambiar input dependiendo de una lista desplegable traida de base de datos

cualquier input tiene una serie de atributos. lo que has de hacer es asignar el valor de la opción seleccionada al atributo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: dependiendo, desplegable, input, lista
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 12:53.