2017-06-08 2 views
0

Ich bin nicht wirklich sicher, ob der Titel korrekt war. Die eigentliche Anwendung ist ein Quiz. Ok, lass mich das illustrieren und hier ist mein Beispielschnipsel.Wie analysiere ich Checkbox multidimensionales Array im JSON-Format?

<form method="POST"> 
 
    
 
    Softdrinks: 
 
    <div class="checkbox"> 
 
     <label><input type="checkbox" name="question[1]answer[]" value="Coke">Coke</label> 
 
    </div> 
 
    <div class="checkbox"> 
 
     <label><input type="checkbox" name="question[1]answer[]" value="Royal">Royal</label> 
 
    </div> 
 
    
 
    Coffee : 
 
    
 
    <div class="checkbox"> 
 
     <label><input type="checkbox" name="question[2]answer[]" value="Cappuccino">Cappuccino</label> 
 
    </div> 
 
    <div class="checkbox"> 
 
     <label><input type="checkbox" name="question[2]answer[]" value="Latte">Latte</label> 
 
    </div> 
 
    
 
    <button type="submit">Submit</button> 
 
    
 
    </form>

annehmen lassen, dass alle Optionen geprüft werden. Aber wenn das Formular abgeschickt wurde die Ausgabe in etwa so:

"question":{ 
    "1":"Coke", 
    "2":"Cappuccino" 
} 

So ist die „Royal“ und „Latte“ sind übersprungenen und ich weiß nicht, warum. Ich möchte die Ausgabe wie folgt sein sollte:

"question":[ 
    "1": { 
     "Coke", 
     "Royal" 
    } 
    "2": { 
     "Latte", 
     "Cappuccino" 
    } 
] 

Antwort

1

Die name Attribute für das Element nicht korrekt sind. Versuchen Sie, diese

<form method="POST"> 

Softdrinks: 
<div class="checkbox"> 
    <label><input type="checkbox" name="question[1][]" value="Coke">Coke</label> 
</div> 
<div class="checkbox"> 
    <label><input type="checkbox" name="question[1][]" value="Royal">Royal</label> 
</div> 

Coffee : 

<div class="checkbox"> 
    <label><input type="checkbox" name="question[2][]" value="Cappuccino">Cappuccino</label> 
</div> 
<div class="checkbox"> 
    <label><input type="checkbox" name="question[2][]" value="Latte">Latte</label> 
</div> 

<button type="submit">Submit</button> 

</form> 

es in der folgenden Ausgabe

"question":[ 
    "1": { 
     "Coke", 
     "Royal" 
    } 
    "2": { 
     "Latte", 
     "Cappuccino" 
    } 
] 
+0

Das löst mein Problem führen sollte. Oh Gott, danke. –