Bonjour à la communauté en ce beau matin ensoleillé !
J'ai un formulaire composé de "diapo" à faire.
Ce formulaire correspond selon moi à un arbre de décision, et je tiens à éviter les if else en folie.

En effet selon certaines réponses à certaines questions l'utilisateur devra répondre à d'autres questions.

Existe-t-il un pattern ou autre pour gérer facilement cette problèmatique ?
merci ! mais j'ai trouvé comment faire (rajouter un attribut condition règle mon problème).

[
    {
        "category": "identification",
        "diapos": [
            {
                "name": "demo",
                "no_fields": true,
                "template": "demo"
            },
            {
                "name": "diapo_1",
                "fields": [
                    {
                        "label": "q1(text) :",
                        "name": "q1",
                        "type": "text"
                    },
                    {
                        "label": "q2(text) :",
                        "name": "q2",
                        "type": "text"
                    },
                    {
                        "label": "q3(datetime) :",
                        "name": "q3",
                        "type": "datetime"
                    }
                ]
            },
            {
                "name": "diapo_2",
                "fields": [{
                        "name": "q4",
                        "label": "q4 (radio) :",
                        "type": "radio",
                        "values": [
                            {
                                "text": "Oui",
                                "value": 1
                            },
                            {
                                "text": "Non",
                                "value": 0
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        "category": "alimentation",
        "diapos": [{
                "name": "diapo_3",
                "fields": [{
                        "label": "q5 (radio) :",
                        "name": "q5",
                        "type": "radio",
                        "values": [
                            {
                                "text": "Oui",
                                "value": 1
                            },
                            {
                                "text": "Non",
                                "value": 0
                            }
                        ]
                    }]
            },
            {
                "name": "diapo_4",
                "condition": "q5==1"
                "fields": [{
                        "label": "q6 (radio) :",
                        "name": "q6",
                        "type": "radio",
                        "values": [
                            {
                                "text": "Oui",
                                "value": 1
                            },
                            {
                                "text": "non",
                                "value": 0
                            }
                        ]
                    }]
            }
        ]
    }
]

Modifié par Su4p (03 Apr 2014 - 11:35)