Tengo una pregunta con respecto a las casillas de verificación.Matriz de casillas de verificación en formularios HTML
<form method="post">
I speak the following languages:
<input type="checkbox" name="lang[]" value="en">English<br />
<input type="checkbox" name="lang[]" value="fr">Français<br />
<input type="checkbox" name="lang[]" value="es">Español<br />
</form>
¿Es necesario nombrar las casillas de verificación lang [] (usando una matriz) o puedo dar a cada casilla un nombre común, como:
<form method="post">
I speak the following languages:
<input type="checkbox" name="lang_en" value="en">English<br />
<input type="checkbox" name="lang_fr" value="fr">Français<br />
<input type="checkbox" name="lang_es" value="es">Español<br />
</form>
Pregunta 1 creo que ambas obras, si es así, ¿cuándo decides qué usar?
Pregunta 2 estoy usando el segundo método mencionado anteriormente así que puedo utilizar PHP para detectar cuál de la casilla de verificación es la selección mediante el uso de un código similar al if(isset($_POST['lang_en']))
. Si tuviera que usar el primer método, ¿hay una manera rápida de verificar si se selecciona una casilla de verificación en particular? Por el momento, la solución no probada en la que puedo pensar implica hacer un if(in_array('lang_en', $_POST['lang']))
para verificar si existe en $ _POST.
Pregunta 3 La pregunta principal es esta: estoy usando el segundo método para poder verificar fácilmente si hay una casilla de verificación seleccionada en PHP. Ahora quiero agregar un enlace de texto que, al hacer clic, seleccionará todas las casillas de verificación. Mi Javascript no es muy bueno, así que estoy usando un script desde http://www.shiningstar.net/articles/articles/javascript/checkboxes.asp pero el script de ejemplo usa una matriz para los nombres de la casilla de verificación, mientras que mi código PHP no puede verificar si las casillas de verificación están seleccionadas con matrices para los nombres de las casillas de verificación. ¿Cómo se puede modificar el código de JavaScript para que funcione sin matrices?
¡Espero que se me ocurra esta molesta pregunta! ¡Gracias!
EDITAR
Javascript:
<!-- Begin
function checkAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = true ;
}
function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
field[i].checked = false ;
}
// End -->
</script>
HTML:
<form action="http://localhost/website/places/search" method="post" accept-charset="utf-8" name="subcategory">
<ul>
<li><input type="checkbox" name="cuisine_American" value="American" /> American</li>
<li><input type="checkbox" name="cuisine_Chinese" value="Chinese" onClick="checkAll(document.subcategory.cuisine)" /> Chinese</li>
<li><input type="checkbox" name="cuisine_Indian" value="Indian" onClick="checkAll(document.subcategory.cuisine)" /> Indian</li>
<li><input type="checkbox" name="cuisine_Japanese" value="Japanese" onClick="checkAll(document.subcategory.cuisine)" /> Japanese</li>
<li><input type="checkbox" name="cuisine_Korean" value="Korean" onClick="checkAll(document.subcategory.cuisine)" /> Korean</li>
<li><input type="checkbox" name="cuisine_Mexican" value="Mexican" onClick="checkAll(document.subcategory.cuisine)" /> Mexican</li>
<li><input type="checkbox" name="cuisine_Middle Eastern" value="Middle Eastern" onClick="checkAll(document.subcategory.cuisine)" /> Middle Eastern</li>
<li><input type="checkbox" name="cuisine_Pakistani" value="Pakistani" onClick="checkAll(document.subcategory.cuisine)" /> Pakistani</li>
<li><input type="checkbox" name="cuisine_Italian" value="Italian" onClick="checkAll(document.subcategory.cuisine)" /> Italian</li>
</ul>
</form>
opción adicional - ''. Eso es lo que uso cuando hay una necesidad de una lista dinámica de casillas de verificación. Cuando la lista es estática (es decir, está codificada), uso la opción 'name = 'lang_en''. Y nunca uso el atributo 'value' con casillas de verificación. – binaryLV
wow eso es genial, tengo que probar esto, gracias! – Nyxynyx