¿Por qué solo se envía un valor de la matriz de valores de casilla de verificación "db" al script del lado del servidor?Matriz de múltiples valores de casilla de verificación
JQUERY:
$(".db").live("change", function() {
$(this).add($(this).next("label")).add($(this).next().next("br")).remove().insertAfter(".db:last + label + br");
var url = "myurl.php";
var db = [];
$.each($('.db:checked'), function() {
db.push($(this).val());
});
if(db.length == 0) {
db = "none";
}
$.post(url, {db: db}, function(response) {
$("#dbdisplay").html(response);
});
return true;
});
HTML:
<input type="checkbox" name="db[]" class="db" value="track"/><label for="track">track</label></br>
<input type="checkbox" name="db[]" class="db" value="gps"/><label for="gps">gps</label></br>
<input type="checkbox" name="db[]" class="db" value="accounting"/><label for="accounting">accounting</label></br>
Editar: acabé responder a mi propia pregunta, pero ¿alguien tiene la documentación (o una explicación) de por qué ¿esto es necesario? Me fue difícil encontrar la respuesta exacta (por lo tanto, la publicación póstuma).
Claro, es documentado, ya que se utiliza php como script del lado del servidor, verifique aquí: http://www.php.net/manual/en/faq.html.php#faq.html.arrays y aquí: http://www.php.net/manual/ es/language.variables.external.php –
Un poco fuera de tema, el valor 'for' de la etiqueta debería ser la identificación de entrada, no el valor de entrada. –