Foros del Web » Programando para Internet » PHP »

Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Estas en el tema de Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help! en el foro de PHP en Foros del Web. Hola a todos! Muy buenos dias... aqui estoy nuevamente, tengo un problemita, estoy tratando de enviar dos campos que tienen 3 registros cada uno, de ...
  #1 (permalink)  
Antiguo 22/06/2007, 06:40
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
De acuerdo Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola a todos! Muy buenos dias... aqui estoy nuevamente, tengo un problemita, estoy tratando de enviar dos campos que tienen 3 registros cada uno, de una pagina a otra a través de un campo oculto (hidden) y bueno cuando lo mando a imprimir en la segunda pagina, nada mas me aparecen los ultimos dos registros de ambos campos, no los tres... aqui anexo el codigo.. alguien que me ayude please!

Código PHP:
<?php
$sql
="select a.sectores,a.mcc,a.mnc,b.lac,a.rac,a.ci,a.id_sectores,b.id_lac from sectores a, lac b where a.clave_lac=b.id_lac and a.clave_estacion=88";
$result=mysql_query($sql,$link);
?>

<form method="POST" action="modifica_celid.php">

<?php
while($salida=mysql_fetch_array($result))
{
$clave=$salida[6];
$clave2=$salida[7];
}
mysql_free_result($result);
?>
<input type="submit" name="accion" value="Modificar" align="middle">
<input type="hidden" name="clave" value="<?php echo $clave;?>">
<input type="hidden" name="clave2" value="<?php echo $clave2;?>">
En la otra pagina simplemente lo mando a imprimir y me salen unicamente los ultimos dos valores..
Código PHP:
<?php
echo $clave;
echo 
"<br>";
echo 
$clave2;
?>
alguien que me diga en que falla este codigo y como lo puedo hacer para que me salgan los tres registros de cada campo... porfa porfa!!!

y gracias por adelantado

Última edición por Melania; 22/06/2007 a las 14:32
  #2 (permalink)  
Antiguo 22/06/2007, 06:52
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Por lo que veo, sólo se ponen dos input tipo hidden en el formulario. Si es así, es normal que sólo te salgan los dos últimos valores.

Creo que deberías poner los input hidden dentro del bucle while así:
Código PHP:
while($salida=mysql_fetch_array($result))
{
$clave=$salida[6];
$clave2=$salida[7];

mysql_free_result($result);

echo(
"<input type=\"hidden\" name=\"clave[]\" value="$clave" />");
echo(
"<input type=\"hidden\" name=\"clave2[]\" value="$clave2" />");

Y luego, en la página de procesado, tratar clave y clave2 como dos arrays.

Un saludo.

P.D.: Seguramente tendrás el parámetro php register_globals a on. De todas formas, es mejor que accedas a las variables pasadas por POST así:
Código PHP:
$_POST['nombre'
  #3 (permalink)  
Antiguo 22/06/2007, 07:27
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hice exactamente lo que tu me dijiste y me sale lo siguiente:

Parse error: parse error, unexpected T_VARIABLE in C:\Apache\htdocs\busca_celid.php on line 58

esa es justo la linea donde sale el primer echo

ayudaaa pleaseee
  #4 (permalink)  
Antiguo 22/06/2007, 07:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Cambia:
Código PHP:
echo("<input type=\"hidden\" name=\"clave[]\" value="$clave" />"); 
Por:
Código PHP:
echo "<input type=\"hidden\" name=\"clave[]\" value=\"$clave\" />"
  #5 (permalink)  
Antiguo 22/06/2007, 09:53
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola GatorV gracias! pero no me da .. en la pagina me sale escrito "array" "array" varias veces... te coloco nuevamente el codigo que tengo..
Código PHP:
<?php
$sql
="select a.sectores,a.mcc,a.mnc,b.lac,a.rac,a.ci,a.id_sectores,b.id_lac from sectores a, lac b where a.clave_lac=b.id_lac and a.clave_estacion=88";
?>
<form method="POST" action="modifica_celid.php">
<?php
while($salida=mysql_fetch_array($result))
{
printf("<tr>
<td><INPUT TYPE='text' NAME='sectores[]' SIZE='20' MAXLENGTH='30' value='%s'></td>   
<td><INPUT TYPE='text' NAME='mcc[]' SIZE='10'MAXLENGTH='30' value='%s'></td>                    <td><INPUT TYPE='text' NAME='mnc[]' SIZE='10' MAXLENGTH='30' value='%s'></td>
<td><INPUT TYPE='text' NAME='lac[]' SIZE='10'MAXLENGTH='30' value='%s'></td>
<td><INPUT TYPE='text' NAME='rac[]' SIZE='10'MAXLENGTH='30' value='%s'></td>
<td><INPUT TYPE='text' NAME='ci[]' SIZE='10'MAXLENGTH='30' value='%s'></td>
</tr>"
,
$salida["sectores"],$salida["mcc"],$salida["mnc"],$salida["lac"],$salida["rac"],$salida["ci"]);

$clave=$salida[6];
$clave2=$salida[7];

echo (
"<input type=\"hidden\" name=\"clave[]\" value=\"$clave\" />");
echo (
"<input type=\"hidden\" name=\"clave2[]\" value=\"$clave2\" />");
}
mysql_free_result($result);
?>
este es el que los procesa:

Código PHP:
<?php
for ($i=0$i 6$i++)
{
$n_sectores=$_POST['sectores'][$i];
$n_mcc=$_POST['mcc'][$i];
$n_mnc=$_POST['mnc'][$i];
$n_lac=$_POST['lac'][$i];
$n_rac=$_POST['rac'][$i];
$n_clave=$_POST['clave'][$i];//AQUI TENGO CLAVE
$n_clave2=$_POST['clave2'][$i];//AQUI TENGO CLAVE2

echo $n_sectores;
echo 
"<br>";
echo 
$n_mcc;
echo 
"<br>";
echo 
$n_mnc;
echo 
"<br>";
echo 
$n_lac;
echo 
"<br>";
echo 
$n_rac;
echo 
"<br>";
echo 
$n_ci;
echo 
"<br>";
echo 
$clave;
echo 
"<br>";
echo 
$clave2;
}
Ayuuudame GatorV y muuchas gracias.. por cierto felicidades eres muuy bueno
  #6 (permalink)  
Antiguo 22/06/2007, 10:15
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Respondanme please
  #7 (permalink)  
Antiguo 22/06/2007, 10:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Cuando ves la pagina ya formada en HTML ves los valores correctos en el campo hidden?
  #8 (permalink)  
Antiguo 22/06/2007, 11:59
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

No entiendo la pregunta... como que si veo los valores correctos en el campo hidden? no te entiendo...

GatorV como que no esta.. alguien que me ayude please.. please... please

Última edición por Melania; 22/06/2007 a las 12:05
  #9 (permalink)  
Antiguo 22/06/2007, 12:05
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Lo que te quiere decir GatorV es que se esta mostrando cuando se genera esto

Código PHP:
while(...)
{
.
.
.
//Que se muestran en estos hidden's?
echo ("<input type=\"hidden\" name=\"clave[]\" value=\"$clave\" />"); 
echo (
"<input type=\"hidden\" name=\"clave2[]\" value=\"$clave2\" />");


Saludillos.
  #10 (permalink)  
Antiguo 22/06/2007, 12:14
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola Mauled... muchas gracias por responder, bueno te digo que soy nueva programando y no los entiendo muy bien.. el
echo ("<input type=\"hidden\" name=\"clave[]\" value=\"$clave\" />");
no me muestra nada en la pagina donde esta... pero deberia mostrar algo? no se supone que lo que debe hacer es pasarme los datos a la otra pagina?
O se suponde que puedo hacer algo para que me los muestre??
Gracias
Saldillos y respondeme porfilis
  #11 (permalink)  
Antiguo 22/06/2007, 13:25
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

En el codigo HTML de la pagina que genera ese script debe aparecerte los
<input type="hidden" name="clave[]" value="$clave" />
pero con valores en vez de "$clave"
  #12 (permalink)  
Antiguo 22/06/2007, 13:30
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola Melania pues prueba esto a mi me resulto:
Código PHP:
<form method="POST" action="modifica_celid.php">
<table cellpadding="0" cellspacing="0" border="0">
<?php
$sql
="select a.sectores,a.mcc,a.mnc,b.lac,a.rac,a.ci,a.id_sectores,b.id_lac from sectores a, lac b where a.clave_lac=b.id_lac and a.clave_estacion=88";
$result mysql_query($sql);
while(
$salida=mysql_fetch_array($result))
{
echo 
'<tr>';
echo 
'<td><INPUT TYPE="text" NAME="sectores[]" SIZE="20" MAXLENGTH="30" value="'.$salida['sectores'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="mcc[]" SIZE="10" MAXLENGTH="30" value="'.$salida['mcc'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="mnc[]" SIZE="10" MAXLENGTH="30" value="'.$salida['mnc'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="lac[]" SIZE="10" MAXLENGTH="30" value="'.$salida['lac'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="rac[]" SIZE="10" MAXLENGTH="30" value="'.$salida['rac'].'"></td>';
echo 
'<td><INPUT TYPE="text" NAME="ci[]" SIZE="10" MAXLENGTH="30" value="'.$salida['ci'].'">';
echo 
'<input type="hidden" name="clave[]" value="'.$salida['id_sectores'].'">';
echo 
'<input type="hidden" name="clave2[]" value="'.$salida['id_lac'].'">';
echo 
'</td>';
echo 
'</tr>';
}
mysql_free_result($result);
?> 
</table>
<input type="submit">
</form>
en modifica_celid.php
Código PHP:
<?php
for ($i 0$i count($_POST['sectores']); $i++)
{
echo 
$_POST['sectores'][$i] . ' ';
echo 
$_POST['mcc'][$i] . ' ';
echo 
$_POST['mnc'][$i] . ' ';
echo 
$_POST['lac'][$i] . ' ';
echo 
$_POST['rac'][$i] . ' ';
echo 
$_POST['ci'][$i] . ' ';
echo 
$_POST['clave'][$i] . ' ';
echo 
$_POST['clave2'][$i] . '<br>';
}
?>
Espero te sirva.

Saludos
__________________

  #13 (permalink)  
Antiguo 22/06/2007, 13:41
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Bueno a mi no me aparece nada de esto...como puedo hacer?
ya estoy en loqueciendo
No se que pueda hacer ayudaaaa
  #14 (permalink)  
Antiguo 22/06/2007, 13:46
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola Gerson asi lo hare! gracias por tu respuesta.. cualquier cosa grito
  #15 (permalink)  
Antiguo 22/06/2007, 14:31
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Gerson Gracias!!!! me funciono perfectamente lo que me dijiste que intentara... un millon de verdad no sabes lo que sufri con esto
excelente tu respuesta
Pero ahora te pregunto, como no se mucho de esto quisiera que me explicaras esta parte del codigo
Código PHP:
for ($i 0$i count($_POST['sectores']); $i++) 
no lo entiendo muy bien osea hasta donde se va a repetir el bucle..
Y muuuchas gracias
  #16 (permalink)  
Antiguo 22/06/2007, 14:34
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Te puedo responder yo?

Pues ese for lo que hace es iniciar una variable $i con valor cero
y despues verificamos que $i sea menor que la cantidad de valor que tiene el arreglo almacenado en $_POST["sectores"] (la funcion count devuelve ese numero) y finalmente incrementamos $i.

El ciclo se ejecuta tantas veces como valores tenga el arreglo que tu tienes en 'sectores'

Saludos
__________________
Roberto Osses Elgueta
Senior Web Developer
  #17 (permalink)  
Antiguo 22/06/2007, 14:51
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Gracias roko de verdad! entendi muy bien tu respuesta ahora sera que me puedes ayudar en algo? bueno tu o el que quiera y pueda
Resulta que toda la idea de pasar los campos ocultos no es para que se vea en la otra pagina y ya, lo que necesito es realizar un UPDATE a mi base de datos..
ya la sentencia la tengo hecha:

Código PHP:
$sql="update sectores,lac set sectores.sectores='$sectores', sectores.mcc='$mcc', sectores.mnc='$mnc', sectores.rac='$rac' lac.lac='$lac' where sectores.id_sectores='$clave' and lac.id_lac='$clave2'"
pero esto era cuando asignaba una variable a lo que me mandaba la pagina anterior por ejemplo $sectores=$_POST['sectores'][$i];pero cuando hago esto no se que pasa que no me funciona sera que puedo hacer esto?

Código PHP:
$sql="update sectores,lac set sectores.sectores='$_POST['sectores'][$i]'.. where sectores.id_sectores='$_POST['clave'][$i]' and lac.id_lac='$_POST['clave2'][$i]"
sera que me funciona?
  #18 (permalink)  
Antiguo 22/06/2007, 14:58
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Me alegra que te haya servido, pues con respecto q tu inquietud, count() te devuelve la cantidad de elemento de una matriz o propiedades de un objeto, en este caso de $_POST['sectores'], pues bien imaginemos que tu consulta sql devolvio 6 registros, entonces se generaran 6 imputs, por consiguiente count($_POST['sectores']) te devolvera "6"; ahora tanto el "for" como el "array" empiezan de "0"; entonces el "for" va ha terminar cuando $i = 5; y para esto ya estara completo todos los datos de los arrays.

Espero haberme explicado bien.

Saludos
__________________

  #19 (permalink)  
Antiguo 22/06/2007, 15:01
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Si bueno ya lo entendi Gerson muchas gracias....
Ahora la otra duda queda pendiente la que esta arriba... ayudenme con esto please..
Gracias
  #20 (permalink)  
Antiguo 22/06/2007, 15:03
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

clave2 y clave no los pasas como arreglos por lo que no puedes tratarlos como tal, tu necesitas guardar todos los elementos del arreglo en un campo de la base de datos por ejemplo de la manera

"dato1,dato2,dato3, etc" es asi?

saludos :)
__________________
Roberto Osses Elgueta
Senior Web Developer
  #21 (permalink)  
Antiguo 22/06/2007, 15:18
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Pero eso ya los campos estan creados.. lo que quiero es realizar una modificacion con un update.. no se si me explico... por ejemplo cuando es un solo valor coloco:

$sql="update region set estacion='$estacion', longitud='$longitud', latitud='$latitud', direccion='$direccion' where clave='$clave'";

donde por ejemplo $estacion=$_GET["estacion"]; que es una valor traido de otra pagina..

Bueno algo asi es lo q intento hacer con el arreglo lo que sucede es que cuando le asigno una variable de esta forma $sectores=$_POST['sectores'][$i]; a cada valor traido no me funciona.. es por esto que quiero saber si puedo hacerlo directamente

$sql="update sectores,lac set sectores.sectores='$_POST['sectores'][$i]'.. where sectores.id_sectores='$_POST['clave'][$i]' and lac.id_lac='$_POST['clave2'][$i]";

sera que me funciona?
  #22 (permalink)  
Antiguo 22/06/2007, 15:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Es mejor bajar las variables con $sectores = $_POST['sectores'][$i] y ya realizar tu update de tu forma tradicional.

Saludos.
  #23 (permalink)  
Antiguo 22/06/2007, 15:21
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Hola de nuevo Melania pues el problema puede ser por comillas:
Código PHP:
$sql="update sectores,lac set sectores.sectores='"$_POST['sectores'][$i]."', sectores.mcc='".$_POST['mcc'][$i]."', sectores.mnc='".$_POST['mnc'][$i]."', sectores.rac='".$_POST['rac'][$i]."' lac.lac='".$_POST['lac'][$i]."' where sectores.id_sectores='".$_POST['clave'][$i]."' and lac.id_lac='".$_POST['clave2'][$i]."'";
 
$result mysql_query($sql);
if (!
$result) {die('Error: ' mysql_error());} 
agrega la ultima linea para puedas ver el error si es que existe en la sentencia sql.
__________________

  #24 (permalink)  
Antiguo 22/06/2007, 15:23
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Trata de hacer esto:
Código PHP:
for ($i=0;$i<count($_POST["sectores"]);$i++) {
  
$th .=  $_POST["sectores"][$i].","

despues hace la consulta igual que con un valor unico,
Código PHP:
$sql="update region set estacion='$estacion', longitud='$longitud', latitud='$latitud', direccion='$direccion' where clave='$clave'"
pero en esta oportunidad utiliza $th y olvida el arreglo, tal vez sea eso lo que te pueda servir?

Saludos
__________________
Roberto Osses Elgueta
Senior Web Developer
  #25 (permalink)  
Antiguo 22/06/2007, 15:55
 
Fecha de Ingreso: junio-2007
Ubicación: Barquisimeto-Venezuela
Mensajes: 96
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

Bueno gracias a los dos a Gerson y a Roko.. hasta ahora he probado lo que dice rocko y me da un problema en el query dice:Error: Out of range value adjusted for column 'id_lac' at row 1
no tengo idea porq revise mi base datos y no deberia dar valor fuera de rango...
q podra ser?
voy a probar la idea de roko dentro de un ratico...
y gracias otra vez y por adelantado
  #26 (permalink)  
Antiguo 22/06/2007, 16:32
 
Fecha de Ingreso: febrero-2003
Ubicación: Santiago
Mensajes: 220
Antigüedad: 21 años, 2 meses
Puntos: 4
Re: Pasar Un Arreglo Con Un Hidden De Una Pagina A Otra! Help!

dale un echo a $th para ver como quedo xD

saludones
__________________
Roberto Osses Elgueta
Senior Web Developer
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 11:07.