Foros del Web » Programando para Internet » PHP »

Como colocar muchos Input's Dinámicos Independientes

Estas en el tema de Como colocar muchos Input's Dinámicos Independientes en el foro de PHP en Foros del Web. Hola tengo un problema, explicaré rápidamente: Tengo un formulario que le pide al cliente cuantos productos solicitará: Código HTML: <form action= "pedidos.php" method= "get" > ...
  #1 (permalink)  
Antiguo 15/07/2013, 20:40
 
Fecha de Ingreso: julio-2013
Mensajes: 4
Antigüedad: 10 años, 9 meses
Puntos: 0
Pregunta Como colocar muchos Input's Dinámicos Independientes


Hola tengo un problema, explicaré rápidamente:

Tengo un formulario que le pide al cliente cuantos productos solicitará:

Código HTML:
<form action="pedidos.php" method="get">
						<h4>Agregar Pedido</h4>
						<p class="name">Nombre del Cliente<em>* (clientes ya existentes)</em></p>
						<input name="nombre_cl" type="text" class="input_name" id="tagscl"></input>
				    <p class="name">Cuantos Servicios llevara<em>*</em></p>
						<input name="nserv" type="text" class="input_name" id="n_servicios"></input>
						<input type="submit" value="Agregar"></input>
					</form> 
Esto nos lleva a la página "pedidos.php"

Lo que deseo es que al seleccionar una opción del SELECT "Prod-0" el SELECT con nombre "extras-0" muestre los extras correspondientes a ese producto.

Todo se hace por consultas a MySQL pero no se como hacer que me muestre los datos del SELECT extras de acuerdo al primer SELECT.


El archivo "pedidos.php" tiene lo siguiente:

Código PHP:
<table id="tfhover" class="tftable" border="1">
<tr>
  <th>Cantidad</th>
  <th>Producto</th>
  <th>Extras</th>
  <th>Comentarios</th>
</tr>
  
  <?
  
for ($i 1$i <= $servicios$i++) {
  echo 
'
  <tr>
                        <td> <input type="text" size="4" maxlength="4" name="cant-'
.$i.'"/></td>
                        <td>
                        
                        
                        <select name="Prod-'
.$i.'" >
<option value="">Seleccione Rroducto</option>'
;

$B_BUSCARmysql_query ('SELECT * FROM productos order by producto asc');
$R_BUSCAR=mysql_fetch_assoc($B_BUSCAR);
$suma=0;
do{ ++
$suma;
echo 
'<option value="'.$R_BUSCAR['id_prod'].'-'.$R_BUSCAR['tipo_prod'].'">'.$R_BUSCAR["producto"].' Cant('.number_format($R_BUSCAR["cantidad"]).')</option>';
}

while(
$R_BUSCAR=mysql_fetch_assoc($B_BUSCAR));
echo 
'</select>&nbsp;<span id="Buscando"></span>
                        
                        
                        </td>
                        <td>
                        
                        
                        <select name="extras-'
.$i.'" >
<option value="" selected="selected">Tiene Extras?</option>
// acá ya no se que hacer.
</select>

                        </td>

                        <td >
                        <textarea name="Comentarios-'
.$i.'"></textarea>
                        
                        
                        </td>
                    
                    </tr>'
;
  }
?>
</table>
Espero se entienda, pues he visto en varios lados y no encuentro una solución.
  #2 (permalink)  
Antiguo 16/07/2013, 01:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Como colocar muchos Input's Dinámicos Independientes

El problema es que son tiempos distintos. Debes refrescar con ajax el select de los extras....

Es decir tu cargas un formulario que muestra el select de productos, cuando el usuario hace su selección se debe lanzar una nueva petición al servidor para que consulte los extras del producto elegido y refrescar la parte de la pagina donde tienes el select de extras....

AJAX es una buena solución... se podría realizar con javascript, cargando primero TODOS los extras en un array y luego filtrarlo... pero yo optaría por
AJAX + PHP
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: formulario, independientes, muchos, mysql, select, sql
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 13:09.