2011-01-14 14 views
27

vi algo en este sitio: gama Manipulación de elementos de formulario HTML en JavaScript y PHP http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=343matriz de elementos HTML, nombre = "algo []" o nombre = "algo"?

Se dice acerca de poner la matriz en la propiedad del nombre y la forma en que el obtener el valor de la colección de entrada. p. name="education[]"

Pero como sé, el elemento de entrada HTML está listo para arreglos en name. En el lado del cliente (GetElementsByName) o del lado del servidor ($_POST en PHP o Request.Form en ASP.NET) por ejemplo: name="education", así que lo que es la diferencia con o sin la más []?

+1

con education [], puede tener campos de entrada con nombres como education [subject] [1] y education [subject] [2] como obtener la matriz asociativa correspondiente en el lado del servidor (en php $ _POST ['education ']) – naiquevin

Respuesta

39

PHP usa la sintaxis de corchetes para convertir entradas de formulario en una matriz, por lo que cuando se utiliza name="education[]" obtendrá una matriz cuando se hace esto:

$educationValues = $_POST['education']; // Returns an array 
print_r($educationValues); // Shows you all the values in the array 

Así, por ejemplo:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 
<p><label>Please enter any previous education<br> 
    <input type="text" name="education[]"> 
</p> 

Le dará todos los valores ingresados ​​dentro de la matriz $_POST['education'].

En JavaScript, que es más eficiente para obtener el elemento por id ...

document.getElementById("education1"); 

El ello no tiene por qué coincidir con el nombre:

<p><label>Please enter your most recent education<br> 
    <input type="text" name="education[]" id="education1"> 
</p> 
14

si tiene casillas de verificación puede pasar una serie de valores comprobados.

<input type="checkbox" name="fruits[]" value="orange"/> 
<input type="checkbox" name="fruits[]" value="apple"/> 
<input type="checkbox" name="fruits[]" value="banana"/> 

también varios menús desplegables seleccione

<select name="fruits[]" multiple> 
    <option>apple</option> 
    <option>orange</option> 
    <option>pear</option> 
</select> 
7

Es diferente. si registra esta forma:

<input type="text" name="education[]" value="1"> 
<input type="text" name="education[]" value="2"> 
<input type="text" name="education[]" value="3"> 

obtendrá una matriz en PHP, en este ejemplo obtendrá $_POST['education'] = [1, 2, 3].

si registra esta forma sin []:

<input type="text" name="education" value="1"> 
<input type="text" name="education" value="2"> 
<input type="text" name="education" value="3"> 

Usted recibirá el último valor, aquí obtendrá $_POST['education'] = 3.

Cuestiones relacionadas