Perché è presente un solo valore della matrice di valori "db" per l'array di valori inviato allo script lato server?Matrice di post di più valori di casella di controllo
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>
Edit: ho finito di rispondere alla mia domanda, ma qualcuno ha documentazione (o una spiegazione) del perché questo è necessario? È stato difficile per me trovare la risposta esatta (quindi post postumo).
Certo, è documentato, dal momento che si utilizza php come script lato server, controlla qui: http://www.php.net/manual/en/faq.html.php#faq.html.arrays e qui: http://www.php.net/manual/ en/language.variables.external.php –
Un po 'fuori tema, il valore 'for' dell'etichetta dovrebbe essere l'id di input, non il valore di input. –