Actualizacion de campos en un mismo formulario

luised_gomez
27 de Noviembre del 2008
Hola a todos, la cuestion es la siguiente

Tengo un formulario..... (una Factura) los productos se encuentran en una lista desplegable... la pregunta es: ¿ al seleccionar uno de los productos como hago para actualizar los otros campos (precio y referencia -- detalles del producto--) en el mismo formulario.....
¿si es posible......? muchas gracias por su respuesta

erdiegui
27 de Noviembre del 2008
Según lo veo yo, puedes hacerlo de dos formas:

1) Cargando la página de nuevo: es decir, en el campo desplegable donde tienes los productos, puedes meterle que en el evento "onchange" lance el FORM, de tal forma que le pases a la página siguiente (bien por POST o bien por GET) el codigo de Producto seleccionado. Es decir:

- en tu pagina "seleccionproducto.php":
<form name="producto" action="muetradatosproducto.php" method="POST">
<select name="producto">
<option value="0">Produto1</option>
<option value="1">Produto2</option>
</select>

y en la pagina "muetradatosproducto.php":
$codigo=$_POST['producto'];
y con esta variable ya puedas hacer el SELECT en la BDD para recoger todos los datos.

2) Si lo quieres hacer sin recarga de página, puedes meter en el VALUE de las opciones del SELECT los valores del resto de campos (precio, referencia, etc), separados por ejemplo con punto y coma (;), y en el ONCHANGE del SELECT que llame a una funcion javascript para que trate dichos valores y rellene los campos correspondientes.

No sé si me he explicado bien. Si te he dejado con más dudas que antes (es posible jeje), dimelo e intentare explicarme algo mejor...

xesar83
27 de Noviembre del 2008
Para actualizar el formulario sin volver a cargar la página sería cosa de javascript.

<script type="text/javascript">
function actualizar(){
valor=parseInt(document.getElementById("producto").value);
switch(valor){
case 0: document.getElementById("precio").value="10";
document.getElementById("ref").value="12345";
break;
case 1: document.getElementById("precio").value="20";
document.getElementById("ref").value="54321";
break;
default:document.getElementById("precio").value="0";
document.getElementById("ref").value="0";
}
}
</script>
Producto: <select id="producto" name="producto" onchange="actualizar();">
<option value="">- -</option>
<option value="0">Produto1</option>
<option value="1">Produto2</option>
</select>
<br>
Precio: <input type="text" id="precio" name="precio">
<br>
Ref.: <input type="text" id="ref" name="ref">

Si los datos precio y referencia están en la BD y quieres actualizar los campos del formulario sin volver a cargar la página deberás de hacerlo con ajax.
Un salu2

SARIKA
27 de Noviembre del 2008
Hola. Esta bien lo que comentais. Yo tb tengo ese problema ya que tengo un select con provincias y quiero que al elegir una, en elsiguiente select de localidades, me imprima las localidades de esa provincia.
Como funciona AJAX ??? No tengo ni idea de lo que es. Muchas gracias por anticipado :)

Xesar83
27 de Noviembre del 2008
Mirate como funciona la librería XHConn, puedes hacer un include php dinamicamente donde te cargue el segundo select según la opción del primero.