Foros del Web » Programando para Internet » PHP »

Actualizar arrays

Estas en el tema de Actualizar arrays en el foro de PHP en Foros del Web. Hola a todos tenia un problema al querer actualizar varios registros usando checkbox bien lo consegui solo que no he logrado pasar una variable (osea ...
  #1 (permalink)  
Antiguo 10/01/2013, 11:37
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Actualizar arrays

Hola a todos tenia un problema al querer actualizar varios registros usando checkbox

bien lo consegui solo que no he logrado pasar una variable (osea no actualizar un valor fijo)


Formulario
Código HTML:
<form action='actualizar.php' method="post" id="form1">
<table>

  <thead>
      <tr>
      <td></td>
      <td>ID</td>
      <td>Nombre</td>
      <td>Seleccionar</td>
    </tr>
  </thead>
  <?php do { ?>
  <tbody>
  <tr>  
  <input type="hidden" name="idg" id="idg" value="" size="26" />/*Este valor lo obtengo al elegir un elemento  en un select (esto es lo que debo actualizar)*/
    
      <td><input type="text" name="clave3[]" id="clave3" value="<? echo $row_productos['id']; ?>" size="10" /></td>
      <td><? echo $row_productos['Nombre']; ?></td>
      <td><input name="aprobar[]" value="<? echo $row_productos['id'];?>" type="checkbox" /><td> 

    </tr>
  </tbody>
     <?php } while ($row_productos = mysql_fetch_assoc($productos)); ?>
</table>

    
      <input type="submit" value="Actualizar" />
 
      <input type="hidden" name="MM_update" value="form1" />
    

</form> 





PARA ACTUALIZAR

Código PHP:
<?php 

$con
=mysql_connect("$host""$username""$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");
if (
count($_POST['aprobar'])) 



foreach (
$_POST['aprobar'] as $v


$sql="UPDATE productos set estado='existencia' WHERE id='$v'"
$res mysql_query($sql,$con) or die(mysql_error());

}else{ echo (
'No has seleccionado ningún registro...');} 

?>
El problema ocurre que quiero actualizar estado obtenido del valor de mi input idg
pero no lo logro solo puedo actualizar poniendo un valor fijo...

asi paso el valor de mi select al input idg

<select name="estado" onClick="document.getElementById('idg').value=this .value;" >
<option value="0">Selecciona</option>
<?php

do {
$id = $row_edo['idedo'];
$fullName = $row_edo['edo'];
echo " <option value='$id'>$fullName</option>";
} while ($row_edo = mysql_fetch_assoc($edo));
?>
</select>


y en mi input idg

<input type="text" name="idg" id="idg" value="" size="26" />

lo deje asi para actualizar mediante una variable

Código PHP:
if (count($_POST['aprobar'])) 



foreach (
$_POST['aprobar'] as $v

 
$p=$_POST['idg'];

$sql="UPDATE productos set estado='$p' WHERE id='$v'"
$res mysql_query($sql,$con) or die(mysql_error());

}else{ echo (
'No has seleccionado ningún registro...');} 
?>


Solo q no funciona y no entiendo porque con un valor fijo si
  #2 (permalink)  
Antiguo 10/01/2013, 11:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar arrays

Lo que no entiendo es la razón de copiar el valor del <select/> al <input/> cuando puedes recibir el mismo valor del <select/> directamente con PHP.

Porque lo que haces es eso, copiar el valor, nada especial.

Además el evento del <select/> debería ser onchange y no onclick.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/01/2013, 11:48
 
Fecha de Ingreso: enero-2012
Ubicación: Mexico Df
Mensajes: 95
Antigüedad: 12 años, 3 meses
Puntos: 6
Respuesta: Actualizar arrays

<select name="estado" onClick="document.getElementById('idg').value=this .value;" >

cambias por

<select name="estado" onChange="document.getElementById('idg').value=thi s .value;" >



creo que esto lo deberias sacar del ciclo do

<input type="hidden" name="idg" id="idg" value="" size="26" />/*Este valor lo obtengo al elegir un elemento en un select (esto es lo que debo actualizar)*/

por que estas creando muchos elementos con el mismo name y id cuando esto esta mal

Saludos
__________________
Mi proyecto web Desarrollo-Tech visitame http://www.desarrollo-tech.com
  #4 (permalink)  
Antiguo 10/01/2013, 11:53
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Actualizar arrays

Ok el valor si lo pasa al input... respecto a tomarlo desde el select no tengo idea de como hacerlo


Ammm y ya lo saque del ciclo :), el problema es que al actualizar por ejemplo 2 registros solo actualiza uno, en cambio cuando lo dejo estático actualiza los dos
  #5 (permalink)  
Antiguo 10/01/2013, 11:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Actualizar arrays

Tomar un valor del select, siempre y cuando esté dentro del formulario, es igual que con cualquier otro campo.

Sólo debes usar el name, como siempre.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 10/01/2013, 12:02
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Actualizar arrays

Gracias el problema solo era cabiar esto
foreach ($_POST['aprobar'] as $v)
$p=$_POST['idg'];
{

Por esto (la variable bajo la llave del foreach)

foreach ($_POST['aprobar'] as $v)
{
$p=$_POST['idg'];



Etiquetas: arrays, formulario, mysql, registro, sql, variables
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 23:57.