Ver Mensaje Individual
  #12 (permalink)  
Antiguo 09/09/2010, 15:54
marco_sa
 
Fecha de Ingreso: diciembre-2007
Mensajes: 113
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Evento onChange dentro de codigo Javascript

Hola Adler

Efectivamente funciona asi, no obstante hay algo que no funciona como es debido, te explico haber si me das una idea:

Actualmente lo tengo asi:

Con este código aumentamos una linea con su select , y sus name e id_ diferentes que van cambiando segun crece o decrece la tabla

Código:
      function addRowToTable()
   {
  var tbl = document.getElementById('tabla');
  var lastRow = tbl.rows.length;
  // if there's no header row in the table, then iteration = lastRow + 1
  var iteration = lastRow;
  var row = tbl.insertRow(lastRow);


  // Combo nombre producto
  var celdaComboNombreProducto = row.insertCell(0);
  var sel = document.createElement('select');
  sel.name = 'nombre_producto' + iteration;
  sel.id = 'id_nombre_producto' + iteration;
  sel.options[0] = new Option('Seleccion', '0');
   
  // Comentado por que lo cargariamos con un bucle while desde BBDD
  <?Php
$sqltarifa=mysql_query("select * from productos");
while ($ftarifa=mysql_fetch_array($sqltarifa)){
print "sel.options['".$ftarifa[0]."']= new Option ('".$ftarifa[3]."','".$ftarifa[7]."');";
}
mysql_free_result($sqltarifa);
?>
   sel.onchange = function(){muestraPrecioProducto(this.value);}

  celdaComboNombreProducto.appendChild(sel);
}

// input precio producto
  var celdaPrecioProducto = row.insertCell(1);
  var el = document.createElement('input');
  el.type = 'text';
  el.name = 'precio_producto' + iteration;
  el.id = 'id_precio_producto' + iteration;
  el.size = 8;
  
  el.onkeypress = keyPressTest;
  celdaPrecioProducto.appendChild(el);
Este codigo es el de la funcion:
Código:
function muestraPrecioProducto(valor) {
document.getElementById('id_precio_producto2').value = valor;
}
Segun esta ahora y ya si que estoy bloqueado del todo, cuando generamos una nueva fila, con sus celdas de select y su input, la tercera flia generada me actualiza el input de la 2.

Osea me imprime lo seleccionado en el combo de la fila tercera en el input de la segunda, se por que es, y es por que la función muestraPrecioProducto, trae el valor de id_precio_producto2.

Mi pregunta es como generar esa misma funciçon para que cada vez que se añada una fila esta sepa desde donde la llamamos, y asi imprima en el input que le corresponde.

Ejemplo se selecciona un producto en el combo4 e imprima el valor de id_precio_producto4 en su input.

Creo que mas o menos lo he explicado, esto no se como hacerlo la logica ya con este embrollo la he perdido, haber que se te ocurre ati hacer con esa funcion para que sepa desde que selec se la llama y en que input lo debe mostrar.

Mil gracias por la ayuda.

SAludos