Foros del Web » Programando para Internet » PHP »

como puedo contar variables enviados con POST

Estas en el tema de como puedo contar variables enviados con POST en el foro de PHP en Foros del Web. Hola chicos Tengo un codigo JAvascript que me genera campos de texto ele = document.createElement('input'); ele.type = 'text'; ele.name = 'autor'+num; ele.className='formas'; contenedor.appendChild(ele); Entonces el ...
  #1 (permalink)  
Antiguo 28/05/2007, 16:30
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
como puedo contar variables enviados con POST

Hola chicos
Tengo un codigo JAvascript que me genera campos de texto

ele = document.createElement('input');
ele.type = 'text';
ele.name = 'autor'+num;
ele.className='formas';
contenedor.appendChild(ele);

Entonces el archivo php recibe variables de siguietne forma
autor1="valor1"
autor2="valor2"
----------
autorN="valorN"

y les asigna a una variable de esta forma

Código PHP:
$i=0;
while(
$i<5){
$autores.=$_POST['autor'.$i]."-".$_POST['mail'.$i]."<br>";
$i++;

Me recoge la variable bien pero no se como sabe este numero N total variables autor que envia. He puesto 5 por poner vamos.

Gracias a todos
  #2 (permalink)  
Antiguo 28/05/2007, 16:38
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: como puedo contar variables enviados con POST

$numero_variables = count($_POST);
  #3 (permalink)  
Antiguo 28/05/2007, 16:56
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: como puedo contar variables enviados con POST

$arrLlaves = array_keys($_POST)
// Genera un arreglo con los las llaves o indices del arreglo
$TotalRecibidos = count(arrLlaves);
for ($i=0;$i<$TotalRecibidos;$i++){
echo $arrLlaves[i] ." - ".$_POST[$arrLlaves[i]];
}
//Te dibujara todsol los valores que recibiste
  #4 (permalink)  
Antiguo 28/05/2007, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: como puedo contar variables enviados con POST

Es mejor si llamas a tus campos asi:
Código:
ele.name = 'autor[]';
Asi los recibes en php como un arreglo y lo puedes recorrer:
Código PHP:
foreach( $_POST['autor'] AS $autor ) {
     echo 
$autor;

  #5 (permalink)  
Antiguo 28/05/2007, 16:59
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: como puedo contar variables enviados con POST

puedes probar con esto, a veces se pasan otras variables y el count puede no ser exacto.
Código PHP:
$autores='';
foreach(
$_POST as $nombre => $valor)
{
   
//extraemos los primeros 5 caracteres
   //y lo comparamos
   
if(substr($nombre,0,5=='valor')
     {
$autores.=$valor;}

suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 28/05/2007, 17:14
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: como puedo contar variables enviados con POST

Muchisimas gracias chicos
pero tengo una duda
el array
$numero_variables = count($_POST);
se recoje todos los variables post pero yo aparte de variable 'autor' paso otros variables del formulario que tienen otos nombres y valores.
  #7 (permalink)  
Antiguo 28/05/2007, 18:26
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: como puedo contar variables enviados con POST

GatorV tiene razon.

Es mejor que hagas el envio como ele.name = 'autor[]'
en php recibiras un array autor con todos los valores.

$autor = $_POST['autor'];

asi tienes en PHP $autor[0] = "Valor0", $autor[1] = "Valor1", etc..

tu PHP que solo llega hasta 5:
Código PHP:
$i=0;
while(
$i<5){ 
$autores.=$_POST['autor'.$i]."-".$_POST['mail'.$i]."<br>"
$i++; 

Se podria hacer, para todos los valores pasados, asi:
Código PHP:
$autor $_POST['autor'];
$mail $_POST['mail'];

for(
$i=$i count($autor) ; i++)
{
   
$autores .= $autor[$i]."-".$mail[$i]."<br>";

o mejor asi:

Código PHP:
$autor $_POST['autor'];
$mail $_POST['mail'];

foreach( 
$autor as $numAutor => $valor )
{
  
$autores .= $valor."-".$mail[$numAutor]."<br>";

Para que esto funcione tienes que pasar los parametros como:

ele.name = 'autor[]'
ele.name = 'mail[]'
ó
ele.name = 'autor['+num+']' si quieres poner tu el indice, si pones solo 'autor[]' PHP automaticamente los ira llamando autor[1], autor[2], autor[3] ....
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 05:37.