0 votes
in SoSci Survey (dt.) by s014016 (360 points)
edited by SoSci Survey

Hallo,

in meiner hierarchischen Mehrfachauswahl sollen die eingegebenen Werte gelöscht werden, wenn in den Hauptkategorien mehr als eine Antwort gewählt wurde. Ist nur eine Hauptkategorie und eine dazugehörige Unterkategorie gewählt soll der Wert stehen bleiben.

Das mit dem Löschen und Neuaufruf der Seite funktioniert gut, nur leider bekomme ich es nicht hin, dass nur gelöscht wird, wenn 2 Hauptkategorien angeklickt sind.
ich habe es über in_array() probiert - funktioniert leider nicht und ich weiß nicht wo der Fehler liegt.

Hier der Code:

$answered = getItems('PA06', '==', 2); //Liste der ausgewählten Kategorien
$list=array('1001', '1002', '1003', '1004', '1005', '1006', '1007', '1008', 
            '1009', '1010','1011', '1012','1013'); //Liste der Hauptkategorien

if (count($answered) != 1){
     for ($i=0; $i<count($answered); $i++) {
       if (in_array($list, $answered)){     
                dropValue((id('PA06', $answered[$i])));      
}
                repeatPage('error');
}   
}

1 Answer

0 votes
by SoSci Survey (302k points)

wenn in den Hauptkategorien mehr als eine Antwort gewählt wurde

Das klingt nach einem Problem der Mengenlehre. Wir nehmen die Schnittmenge aus den Hauptkategorien und den ausgewählten Optionen...

$hauptSel = array_intersect($answered, $list);

Und dann können wir das einfach abzählen:

if (count($hauptSel) > 1) {
    // hier löschen
}
by s014016 (360 points)
Danke, das mit der Schnittmenge hatte ich gestern auch schon gefunden :-) Funktioniert nun!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...