Merge Question Values
You can merge values from multiple questions into a single array or object. This functionality enables you to split complex forms into connected parts. For example, you can create a form where users enter a list of employees in one question and fill out details about them in another question. If you associate the questions with each other, their values will be merged into a single array.
To associate two questions, set their valueName property to the same value. This value will be used as a name for the property that will contain the merged array.
For example, the Checkbox question type produces an array of primitive values, and a primitive value cannot be merged with an object. To force a Checkbox question to produce an array of objects, specify the valuePropertyName property with a field name that should store question values. In the following example, a Checkbox question stores values in the car field. A Child Object Panel adds the years-owned and rating fields to each object in the cars array:
const formJson = {
"elements": [{
"type": "checkbox",
"name": "cars",
"valuePropertyName": "car",
"title": "Which car(s) have you ever owned?",
"choices": [ "Ford", "Vauxhall", "Volkswagen", "Nissan", "Audi",
"Mercedes-Benz", "BMW", "Peugeot", "Toyota", "Citroen", "Tesla" ]
}, {
"type": "paneldynamic",
"name": "cars-info",
"title": "Car Information",
"valueName": "cars",
"templateElements": [{
"type": "dropdown",
"name": "years-owned",
"title": "How long did you own this car?",
"choicesMin": 1,
"choicesMax": 50
}, {
"type": "rating",
"name": "rating",
"title": "How would you rate it?",
}],
"templateTitle": "Car: {panel.car}"
}]
}