Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/11/2004, 20:31
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. en principio .. si lo vas hacer así en PHP .. Primero tendras que seleccionar el producto para que puedas consultar por su cantidad bajo una consulta SQL condicional para ese registro (como haces para tu UPDATE pero un SELECT). Esto va a ocasionar una recarga de página .. tenlo presente.

De esta forma .. verificas en ese instante el valor actual de ese item de tu BD.

Podrìa ser algo tipo:

Código PHP:
// Evento de javascript .. si cambia un valor .. se hace un "submit" del formulario automàtico ..
// El action del formulario debe apuntar a este mismo script 
echo "<select name=\"nombre_producto\" onChange=\"this.form.submit()\">";

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result)){
  // predefinir el estado inicial de tu lista (opcion seleccionada) al recargar la página
  if ($_POST['nombre_producto'] == $row['nombre_producto']){
     echo "<option value=\".$row["nombre_producto"].\" selected>".$row["nombre_producto"]."</option>";
  } else {
     echo "<option value=\".$row["nombre_producto"].\">".$row["nombre_producto"]."</option>";
  }
}
// hay que respetar la sintax (x)HTML .. cierra todo tag abierto y recuerda que los option tienen "value" y su tag de cierre .. usalos. Respeta las comillas dobles donde tengan que estar.
echo "</select>";

if (!empty($_POST['nombre_producto'])){
// consulta SQL para obtener esa cantidad de ese producto
$sql="SELECT cantidad FROM inventario WHERE nombre_producto='".$_POST['nombre_producto']."'";
$resultado=mysql_query($sql) or die (mysql_error());
   // comprobar si existe la cantidad para ese producto ...
   if (mysql_num_rows($resultado) == 1){
     // acceder directamente al resultado .. se espera un sòlo registro 
      $cantidad=mysql_result($resultado,0,"cantidad");
   } else {
       $cantidad ="seleccione un item";
   }
}
?>
<input type="Text" name="cantidad" size="20" maxlength="50" value="<? echo $cantidad ?>">
A todo esto .. tus botones de "aumentar y disminuir" .. ademàs de lo que puedan hacer a nivel de javascript (tomar ese "input" y modificar su valor si así tenías pensado hacerlo .. ) tendrán que hacer el "submit" a su vez del formulario o meter un botón de "submit" ademàs de lo que puedan hacer tus botones.

Pero .. En realidad lo que tendrías que hacer es tan sólo presentar ese valor de "cantidad" NO editables (no bajo el input .. ) a no ser que ese valor pueda ser modificado con cualquier otro valor (no +1 ó -1) .. si sólo se va a incrementar o decrementar .. hazlo en PHP mejor ese cálculo.

Otras técnicas que podrías usar:

* Cargar en Arrays de javascript todos los valores de esos registros que presentas (productos y sus stocks) para .. vía javascrip .. al cambiar un valor de tu <select> en el "input" que indica el stock se muestre ese valor para ser editado.

* Remote scripting (usa el buscador del foro o busca en google .. sale variada informaciòn al respecto) .. De esta forma no hay una recarga de página "aparente" y digamos que se "trae" el resultado de tu consulta SQL al campo en cuestión de tu formulario.

Un saludo,

Última edición por Cluster; 18/11/2004 a las 20:33