Warum wird nur ein Wert des Kontrollkästchens "db" an das serverseitige Skript gesendet?Post-Array mit mehreren Checkbox-Werten
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>
bearbeiten: beendet ich meine eigene Frage zu beantworten, aber jemand Dokumentation hat (oder eine Erklärung), warum das ist notwendig? Es war schwierig für mich, die genaue Antwort (also die posthume Post) zu finden.
Sicher, es ist dokumentiert, da Sie verwenden PHP als serverseitiges Skript, schau hier: http://www.php.net/manual/en/faq.html.php#faq.html.arrays und hier: http://www.php.net/manual/ en/language.variables.external.php –
Etwas außerhalb des Themas sollte der 'for'-Wert des Labels liegen sei die Eingabe-ID, nicht der Eingabewert. –