Foros del Web » Programando para Internet » PHP »

formulario y update dinamico

Estas en el tema de formulario y update dinamico en el foro de PHP en Foros del Web. buenas tardes, me ha surgido un problema al hacer un formulario dinamico. por una parte, los componentes del formulario son dinamicos, los saco de una ...
  #1 (permalink)  
Antiguo 23/11/2004, 08:20
 
Fecha de Ingreso: abril-2004
Mensajes: 42
Antigüedad: 20 años
Puntos: 0
formulario y update dinamico

buenas tardes,

me ha surgido un problema al hacer un formulario dinamico. por una parte, los componentes del formulario son dinamicos, los saco de una base de datos, como muestro aqui:


$count="0";
while($lou=mysql_fetch_array($resule))
{
$count++;
echo("
<input type=text size='5' name='ide$count' value='$lou[puntos]'>");
}


lo que hago es darle un name diferente a cada input (ide1, ide2, ide3,... dependiendo del numero de resultados de la consulta). hasta aqui todo funciona perfectamente.

el problema surge al enviar las variables mediante el formulario. las envio a otra pagina en la que tengo que actualizar esos datos, también dinamicamente. por tanto, tengo que repetir la consulta que ejecuto en la pagina anterior para que me actualice los datos.

esto es lo que intento pero no sale. a esta pagina llegan las variables $ide1, $ide2, $ide3, etc, que utilizo para actualizar la tabla. pero no se como llamarlas para que puedan actualizar la bbdd. lo he intentado con el script que tienen debajo, pero lo que genera es una cadena de caracteres, no una variable.

$cont="0";
while($row=mysql_fetch_array($result))
{
$cont++;
$ide='$ide';
$numero="$ide$cont";
$link=mysql_connect($maquina,$user,$password);
$sql="update registros set puntos='$numero' where (grupo='$cont' and organizacion='$organizacion')";
$resulc=mysql_db_query($database,$sql,$link);
}

si alguien pudiera ayudarme, por favor

saludos

pagazauskas
  #2 (permalink)  
Antiguo 23/11/2004, 09:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que se usa para lo que pretendes hacer lo describe esta FAQ (la técnica):

http://www.forosdelweb.com/f18/faqs-php-530600-post518710/

Se trata de generar tus "input" con nombres de variable tipo array para poder leer ese array en tu script PHP con bucles tipo for() o foreach() o usar otras técnicas (IN() de SQL por ejemplo ...)

En tu caso concreto te vendría bien usar un array asociativo tipo:
<input type=text size='5' name='ide[$count]' value='$lou[puntos']>");

Para que uses un bucle tipo
foreach($_POST['id'] as $ide => $puntos) ....




Un saludo,
  #3 (permalink)  
Antiguo 01/12/2004, 04:25
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 21 años, 7 meses
Puntos: 0
Buenos días.

Me encuentro con el mismo problema que pagazauskas y no me queda muy claro cuál es el proceso que debo seguir.

Mi caso es el siguiente:

Estoy realizando una tienda online. Cuando el usuario visualiza lo que lleva comprado en la cesta, le aparece un listado con todos los productos, su precio, y un input con las unidades, donde el usuario podrá modificarlas.

Código PHP:
<input name="unidad[$valor]\" type=\"text\" id=\"unidades\" size=\"1\" class=\"texto\" value=\"$salida[3]\"> 
Cuando le da a actualizar, vuelve a la misma página, al proceso de actualizar, y es ahí donde no sé exactamente el proceso que debe seguir para modificar las unidades.

¿Se puede concretar más?

He probado con los procesos que comenta Cluster pero no sé si lo hago mal.

Código PHP:
if ($accion=='actualizar'){
        foreach(
$_POST['id'] as $valor => $unidad){ 
               echo 
$id."<br>"
            
mysql_query("UPDATE $tablacesta SET unidades='$unidad' WHERE id='$idcesta'",$link);
        }....... 
Saludos, Paky.
  #4 (permalink)  
Antiguo 01/12/2004, 07:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tu unidad[] .. el indice de ese array debería ser tu "ID" de ese elemento de to formulario .. no sé si un ID de tu BD de productos? . .o similar .. y el value= del <input> .. será tu valor (lo que el usuario escriba ahí o lo que pre-definas si lo requieres usando el value=...)

De esa forma .. lo que pasa a PHP es la variable unidad en el array POST o en el que lo envies:

foreach($_POST['unidad'] as $id => $valor){

y como envias un array .. y ya hemos dicho que el "indice" de esta es tu $id .. y el valor de esta eso mismo .. el valor .. pues así como ves tendría que quedar para que puedas hacer tu UPDATE tipo:

mysql_query("UPDATE $tablacesta SET unidades='$valor' WHERE id='$id'",$link);
}.......

Un saludo,
  #5 (permalink)  
Antiguo 02/12/2004, 03:08
Avatar de paky  
Fecha de Ingreso: septiembre-2002
Mensajes: 127
Antigüedad: 21 años, 7 meses
Puntos: 0
Buenos días cluster,

he probado lo que me has dicho pero me aparece el siguiente error:

Parse error: parse error, unexpected T_LOGICAL_OR in /var/www/html/cashsanroque/anadircarrito.php on line 28

La instruccion que tengo en la linea 28 es:

Código PHP:
foreach($_POST['unidad'] as $idcesta => $valor){ or die mysql_error() 
¿qué tengo mal?

Muchas gracias por tu ayuda.

Saludos, Paky.
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 06:33.