Hola a todos,
Estoy creando una pagina para generar pedidos. Los articulos de los pedidos estan en una lista desplegable y los valores provienen de una query Mysql.
Lo que quiero hacer es que se puedan insertar varios articulos en continúo.
Para eso tengo un script que copia la fila y la adjunta debajo de la primera.
Mi problema es que en la nueva fila copiada, al seleccionar un código de artículo en la lista desplegable, no se rellena el campo descripción. Si escribo una cantidad y luego paso el Form, no pasan los valores de las filas copiadas. solamente pasan los valores de la primera fila.
Aquí les pongo mi código:
<html>
<head>
<!-- Actualizar datos desde selección en la lista desplegable ARTICULOS !-->
<script type="text/javascript">
function actualizalist(){
if(document.getElementById('listacodigo')){
if(document.getElementById('savecodigo')){
var savecodigo = document.getElementById('listacodigo').options[document.getElementById('listacodigo').selectedInd ex].value;
var descripcion = document.getElementById('listacodigo').options[document.getElementById('listacodigo').selectedInd ex].getAttribute("des");
document.getElementById('savecodigo').value=saveco digo;
document.getElementById('descripcion').value=descr ipcion;
}else{alert('El Código no se ha encontrado.');}
}else{alert('La Lista de Selección no se ha encontrado.');}
}
</script>
<!-- SCRIPT para agregar una nueva linea !-->
<script language="javascript" type="text/javascript">
function mas( el )
{
while ( el.parentNode && 'tr' != el.nodeName.toLowerCase() )
{
el = el.parentNode;
}
var t = el.parentNode;
var i = el.rowIndex ;
if (i== t.rows.length)
{
i = t.rows.length;
}
else
{
i = el.rowIndex+1;
}
var copia=el.cloneNode(true);
var inputs=copia.getElementsByTagName('input');
var selects=copia.getElementsByTagName('select');
for(a=0;a<inputs.length;a++)
{
inputs[a].value='';
}
for(a=0;a<selects.length;a++)
{
var opciones=selects[a].options;
for (b=0;b<opciones.length;b++)
{
opciones[b].selected=false;
}
}
el.parentNode.appendChild(copia);
}
</script>
</head>
<body>
<table border="0" cellspacing="0" align="center" class="Estilo_5">
<tr>
<td width="105" align="center">
<td width="100" align="center">Código</td>
<td width="615" align="left">Descripción</td>
<td width="75" align="center">Cantidad</td>
<td width="105" align="center">
</tr>
<?php
$consult=mysql_query("SELECT * FROM articulos ORDER BY codigo");
?>
<tr>
<td colspan="5">
<table id="miTabla" border="0" cellspacing="0" align="center" class="Estilo_5">
<tr id='fila'>
<td width="105" align="center">
<td width="100" align="center">
<label>
<select class="Estilo_5" name="listacodigo" id="listacodigo" onchange="actualizalist()" style="width:100px;">
<option>Seleccione...</option>
<?php
while ($row=mysql_fetch_assoc($consult))
{
print "<option value='".$row["codigo"]."' des='".$row["descripcion"]."'>
".$row["codigo"]."</option>";
}
?>
</select>
</label>
<input class="Estilo_5" type="hidden" size="12" name="savecodigo[]" id="savecodigo" disabled style="border-width:1px"/>
</td>
<td width="615" align="left">
<input class="Estilo_5" name="descripcion[]" id="descripcion" type="text" disabled size="100" maxlength="100" style="border-width:1px"/>
</td>
<td width="75" align="center">
<input class="Estilo_5" align="center" name="savecantidad[]" type="text" id="savecantidad" size="10" maxlength="10" style="border-width:1px"/>
</td>
<td width="105" align="center">
<img src='images/i_mas.png' title='Añadir otro Campo' onclick='mas(this);' style='border:none' height="15">
<img src='images/i_menos.png' title='Eliminar Campo' onclick='borra(this);' style='border:none' height="15">
</td>
</tr>
</table>
<br /><br />
<input class="Estilo_5" type="submit" name="registrar" id="registrar" value="Registrar Pedido" />
</form>
</body>
</html>