preg_match_all - php parser html dom
PublicaciĆ³n de matriz en PHP (2)
Estoy intentando publicar una matriz llena de casillas de verificación y abrirla en la página siguiente.
Solo me da el último resultado, ¿alguien sabe por qué? ¿O como arreglarlo?
<form name="input" action="createevent.php" method="post">
Event title:
<input type="text" name="Eventtitle" size="20">
<br>Event Description
<input type="text" name="Description" size="20">
<br>
Please select the days that you are free to arrange this meeting.<br>
Monday
<input type="checkbox" name="day" value="Monday" />
<br />
Tuesday
<input type="checkbox" name="day" value="Tuesday" />
<br />
Wednesday
<input type="checkbox" name="day" value="Wednesday" />
<br />
Thursday
<input type="checkbox" name="day" value="Thursday" />
<br />
Friday
<input type="checkbox" name="day" value="Friday" />
<br />
Saturday
<input type="checkbox" name="day" value="Saturday" />
<br />
Sunday
<input type="checkbox" name="day" value="Sunday" />
<br /><br />
<input type="submit" value="Submit">
y no importa cuántos selecciones, solo da un resultado único en la página siguiente. $ day = sizeof ($ _ POST [''day'']);
solo da una ''1'' respuesta. Y cuando los lleve a la siguiente página, querré poder seleccionarlos por separado.
¡Gracias!
La razón por la que solo obtiene un resultado es porque está publicando varios campos con el mismo nombre, por lo que, de manera predeterminada, el último sobrescribe todos los anteriores. Intenta crear una matriz en tu HTML así:
Monday
<input type="checkbox" name="day[]" value="Monday" />
<br />
Tuesday
<input type="checkbox" name="day[]" value="Tuesday" />
<br />
Wednesday
<input type="checkbox" name="day[]" value="Wednesday" />
y así sucesivamente en la lista ...
PHP solo creará automáticamente un valor POST en una matriz si termina en []
.
Por lo tanto, debe tener name="day[]"
lugar de simplemente name="day"
.
(Tenga en cuenta que esto funciona para cualquier valor POST, y también con matrices asociativas en lugar de solo incrementar automáticamente; puede hacer name="foo[bar]"
, y obtendría $_POST[''foo''][''bar'']
...)