Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Editar varios registros

Estas en el tema de Editar varios registros en el foro de PHP en Foros del Web. Muestro una lista con varios registros, muestro codigo y nombre, con el checkbox marco los registros que quiero actualizar. El formulario permite editar el nombre. ...
  #1 (permalink)  
Antiguo 30/07/2016, 13:39
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Editar varios registros

Muestro una lista con varios registros, muestro codigo y nombre, con el checkbox marco los registros que quiero actualizar.
El formulario permite editar el nombre. Si marco dos registros el formulario debería enviar esto al PHP.
codigo / nombre
100 paolo
200 roberto
Mi formulario de edición es este:
Código HTML:
<form name="codigo_nuevo" action="actualizar.php" method="POST">
	<table id="miTabla">
		<tr>
			<th>Actualizar</th>
			<th>Código</th>
			<th>Nombre</th>
		</tr>
		{section name=i loop=$lista}
		<tr>
			<td class="text-center"><input type="checkbox" name="seleccion[]" id="seleccion" value="{$lista[i]->codigo}"></td>
			<td class="text-center">{$lista[i]->codigo}</td>
			<td><input type="text" name="nombre" id="nombre" value="{$lista[i]->nombre}"></td>
		</tr>
		{/section}
	</table>
	<div class="modal-footer">
		<button class="btn btn-primary">Procesar</button>
	</div>
</form> 
En pantalla puedo editar el campo {$lista[i]->nombre} pero no pasa el valor al php.
Lo que quiero es que pase un array con el(o los) códigos y el(o los) nombres seleccionados para actualizar solo el nombre.
Pero lo que pasa es todos los nombres y solo los codigos a los que se hizo checkbox.
__________________
Todos somos iguales. NO! a la violencia de género.

Última edición por bandolera; 30/07/2016 a las 16:55
  #2 (permalink)  
Antiguo 30/07/2016, 22:55
 
Fecha de Ingreso: septiembre-2015
Mensajes: 142
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Editar varios registros

pero si dices que quieres pasar un array

no debería ser así el input , el nombre debería llevar [] ?

Código HTML:
Ver original
  1. <input type="text" name="nombre[]" id="nombre" value="{$lista[i]->nombre}">
y esto no lo entiendo :

Pero lo que pasa es todos los nombres y solo los codigos a los que se hizo checkbox.

pasa todos los nombres si seleccionaste o no ?
y pasa todo los códigos si marcaste o no ?
  #3 (permalink)  
Antiguo 01/08/2016, 10:22
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Editar varios registros

Cita:
Iniciado por sonystar_17 Ver Mensaje
pero si dices que quieres pasar un array

no debería ser así el input , el nombre debería llevar [] ?

Código HTML:
Ver original
  1. <input type="text" name="nombre[]" id="nombre" value="{$lista[i]->nombre}">
y esto no lo entiendo :

Pero lo que pasa es todos los nombres y solo los codigos a los que se hizo checkbox.

pasa todos los nombres si seleccionaste o no ?
y pasa todo los códigos si marcaste o no ?
Utilizo un input en el campo nombre para poder editarlo y para saber qué registro actualizar, utilizo el checkbox.
Ahora si lo pongo así como mencionas:
Código HTML:
<input type="checkbox" name="codigo[]" id="codigo" value="{$lista[i]->codigo}">
{$lista[i]->codstud}</td>
<input type="text" name="nombre[]" id="nombre" value="{$lista[i]->nombre}"> 
En el PHP recibo las matrices:
Código PHP:
$_POST['codigo'
Código PHP:
$_POST['nombre'
En la matriz CODIGO recibo los códigos que tienen checkbox (eso está bien), pero en la matriz NOMBRE, recibo toda la lista de nombres.
Lo que quiero es poder identificar los nombres que tienen el checkbox en la pantalla.
__________________
Todos somos iguales. NO! a la violencia de género.
  #4 (permalink)  
Antiguo 01/08/2016, 13:32
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Editar varios registros

Obviamente al utilizar un solo formulario y type text en los campos, cuando envíes el formulario se van a enviar todos, es su comportamiento natural.

Como vas a utilizar array bien podrías establecer las claves del array con el valor del value del checkbox, así poder detectar los nombres que corresponden a esos checkbox.

Código HTML:
Ver original
  1. <input type="checkbox" name="codigo[]" id="codigo" value="{$lista[i]->codigo}">
  2. {$lista[i]->codstud}</td>
  3. <input type="text" name="nombre[{$lista[i]->codigo}]" id="nombre" value="{$lista[i]->nombre}">


Por lo que en php acceder a el asi:

Código PHP:
foreach ( $_POST['codigo'] as $k => $v ) { 

    echo 
$_POST['nombre'][$v];


Hay otros métodos de hacerlo. Pero este te podría valer.
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 01/08/2016, 14:01
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
De acuerdo Respuesta: Editar varios registros

Cita:
Iniciado por xerifandtomas Ver Mensaje
Obviamente al utilizar un solo formulario y type text en los campos, cuando envíes el formulario se van a enviar todos, es su comportamiento natural.
(...)
Hay otros métodos de hacerlo. Pero este te podría valer.
Muchas gracias!!!!! eso es lo que buscaba.
No sabía que se podía hacer eso.
Yo estaba pensando hacerlo en el value del código.
__________________
Todos somos iguales. NO! a la violencia de género.

Etiquetas: formulario, registro, registros, tabla
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 01:48.