2009-12-30 12 views
7

Me pregunto antes de intentar refactorizar mi página si es posible tener una matriz de entrada anidada doble en html. Tengo un grupo de elementos 8X5 en una forma y que sería bueno para mí ser capaz de analizar usando una matriz de matrices ... algo así como¿es posible tener matrices de etiquetas de entrada anidadas dobles en html?

<input type="text" name="list[][]" /><input type="checkbox" name="list[][]" /> 

y así sucesivamente

+0

¿Cuál es su proceso de servidor ¿idioma? Creo que PHP puede manejar esto. –

+0

Darrell: estoy usando php. Lo que me pregunto es si $ _POST ['elem_name'] sería una matriz de matrices o si sería basura. –

Respuesta

13

usted va a necesitar para suministrar índices en la primera parte de cada campo o de lo contrario no hay nada para anidar, y si lo hizo el trabajo, no se vería como una cuadrícula en el otro extremo:

Fila 1:

name="list[0][]" 

Fila 2:

name="list[1][]" 

etc.

Finalmente, yo Tu servidor debe admitir esto, ya que PHP y Rails lo hacen de fábrica. No estoy seguro acerca de otras tecnologías de servidor. Por ejemplo, el siguiente código HTML cuando sea publicado en PHP:

<form action="post.php" method="POST" accept-charset="utf-8"> 
    <input type="text" name="list[0][]" value="1" /> 
    <input type="text" name="list[0][]" value="2" /> 
    <input type="text" name="list[0][]" value="3" /> 

    <input type="text" name="list[1][]" value="4" /> 
    <input type="text" name="list[1][]" value="5" /> 
    <input type="text" name="list[1][]" value="6" /> 

    <input type="text" name="list[3][]" value="7" /> 
    <input type="text" name="list[3][]" value="8" /> 
    <input type="text" name="list[3][]" value="9" /> 

    <input type="submit" name="Send" value="Send" id="Send" /> 
</form> 

Si en el PHP existe el siguiente código:

<?php print_r($_POST['list']); ?> 

la salida es:

Array 
(
    [0] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
     ) 

    [1] => Array 
     (
      [0] => 4 
      [1] => 5 
      [2] => 6 
     ) 

    [3] => Array 
     (
      [0] => 7 
      [1] => 8 
      [2] => 9 
     ) 

) 
+0

Así que solo está dando los nombres de los campos que tienen un número. Está falsificando la funcionalidad, en realidad no es compatible con HTML4. – voyager

+0

¿y qué si soy? Solo estoy tratando de hacerlo un poco más elegante para hacer mi código php en el otro extremo del formulario :) –

+1

Actualicé mi respuesta para proporcionar un ejemplo en PHP. @voyager, realmente no estoy fingiendo nada ya que los campos son nombres válidos de HTML4 y depende de la tecnología del servidor para soportarlo. –

0

HTML que permite tener varias entradas con el mismo nombre, que se envían al servidor a través de POST o GET como una matriz separada por comas, que la mayoría de (todos) los idiomas del lado del servidor reconocen como una matriz nativa.

No existe una manera nativa de crear una matriz multidimensional con HTML puro sin que usted mismo desarrolle algo con javascript.

+0

PHP no reconoce los campos con el mismo nombre que una matriz. De hecho, solo devolverá el último valor definido. 'd = 1 & d = 2 & d = 3' cuando se recupera con' $ _GET ['d'] 'devolvería' "3" ' –

+0

@Doug Neiner: Nunca he usado PHP para nada más que un' hola, mundo', así que supuse que funcionaba como ASP, Python, Ruby y (creo) Perl. – voyager

Cuestiones relacionadas