2012-07-26 29 views
14

Estoy tratando de enviar datos desde múltiples casillas de verificación (id []) y crear una "información" en php para permitirme ejecutar un script para cada valor (sin embargo, la cantidad de valores puede cambiar cada vez) sin embargo, primero estoy tratando de mostrar el contenido de cada valor de la matriz. No estoy muy seguro de cómo poner mi matriz llenando la línea para guardar todo el contenido de la matriz.

HTML

echo("<input name='id[]' type='checkbox' value='".$shopnumb."'>"); 

mi código de procesamiento de esperanza actualmente es -

$info=$_POST['id[]']; 
Echo(array_values($info)); 

¿qué necesito hacer para que el contenido enviado por correo desde las casillas de verificación de forma poblar la información gama

cualquier ayuda es muy apreciada

edited for clarifi catión.

Respuesta

30

Cambio

$info=$_POST['id[]']; 

a

$info=$_POST['id']; 

añadiendo [] hasta el final de sus nombres de campo de formulario, PHP convertirá automáticamente estas variables en matrices.

+0

gracias, este fue probablemente mi mayor problema, ni siquiera estaba pensando en ello . –

5
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 
<input name='id[]' type='checkbox' value='".$shopnumb."\'> 


$id = implode(',',$_POST['id']); 
echo $id 

no se puede hacer eco de una matriz porque simplemente imprimirá Array. Si quiere imprimir una matriz, use print_r.

print_r($_POST['id']); 
+1

gracias, también me preguntaba por qué seguí recibiendo "matriz" –

+0

Usó id [] lo que significa que está pasando una matriz. Esto se usa si quiere pasar varias casillas de verificación. Si solo quiere pasar una casilla de verificación solo use name = "id" –

+0

Estoy pasando posiblemente 1 posiblemente 500 –

4

Debe obtener la matriz como en $ _POST ['id']. Por lo que debe ser capaz de hacer esto:

foreach ($_POST['id'] as $key => $value) { 
    echo $value . "<br />"; 
} 

nombres de entrada debe ser igual:

<input name='id[]' type='checkbox' value='1'> 
<input name='id[]' type='checkbox' value='2'> 
... 
+0

Esta es la única respuesta que realmente tiene sentido – andreszs

2

No sé si entiendo su pregunta, pero tal vez:

foreach ($_POST as $id=>$value) 
    if (strncmp($id,'id[',3) $info[rtrim(ltrim($id,'id['),']')]=$_POST[$id]; 

ayudaría

Eso es si realmente desea tener un nombre diferente (id [clave]) en cada casilla del formulario html (no muy eficiente) Si no, puede nombrarlos todos igual, es decir, 'id' e iterar en los valores (seleccionados) de la matriz, como: foreach ($_POST['id'] as $key=>$value)...

Cuestiones relacionadas