Hallo zusammen,
seit dem Update werden mehrere Fehler geworfen.
Der Auftraggeber hat mir mitgeteilt, dass von einem MA von SoSci Survey mitgeteilt wurde, dass "GetItems" verwendet werden soll.
Das geht aber nicht, weil hier mehrere Interview-Objekte ausgelesen werden.
Habe im Code mal die Alternativen mit Kommentaren markiert.
Am Einfachsten wäre die Verwendung von Try-Catch oder eben die Möglichkeit, dass überprüft werden kann, ob das Feld exisitert, ohne einen Fehler zu werfen.
function concatItem($top, $left, $sRef, $base, $sonstigesKey){
$baseTop = 0;
$concatString = "";
for ($i = 0; $i<30; $i++){
// Ursprünglicher Code:
$itemText = getItemtext($base,$i);
$itemText = $i;
// Fehler seit Update:
// Die Variable <strong>UV022</strong> gibt es in diesem Projekt nicht (siehe Variablen-Übersicht). Daher kann kein Antwort-Wert dafür ermittelt werden.
// Variante 1
// itemText anders erfragen
//
// $itemText = value($base.$i, 'free'); // Auswahl des Befragen als Text
// Die Funktion <strong>value()</strong> ist nur verfügbar, wenn ein einzelnes Interview als Datenbasis verfügbar ist.
// Variante 2
// Loop umschreiben
//
// foreach (getItems($base, 'all') as $itemText){
// Fehler
// Die Funktion <strong>getItems()</strong> ist nur verfügbar, wenn ein einzelnes Interview als Datenbasis verfügbar ist.
// Variante 3:
// Array übergeben (ich weiß aber nicht im Vorfeld, wie viele Objekte ich abfragen muss. Das möchten wir nicht)
//
// foreach ([2,4] as $i) {
// ...
// }
$itemText = value($base.$i, 'free'); // Auswahl des Befragen als Text
if (!empty($itemText)){
if ($i>0) {
$concatString .="\n";
}
$baseKey = $base.'_'.str_pad($i, 2, '0', STR_PAD_LEFT);
if (isset($sRef[$baseKey])){
$value = $sRef[$baseKey];
if ($value==2){
$concatString .= "■ ";
} else {
$concatString .= "□ ";
}
}
$concatString .= $itemText ."\n";
}
}
if (isset($sRef[$sonstigesKey])){
$concatString .="\n";
$concatString .= $sRef[$sonstigesKey];
}
add($concatString,
['top' =>$top+10*$baseTop,'left' => $left,'width' => 70,
'size' => 10,]);
$baseTop++;
}