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

0 votes

Im Fragebogen sind mittels HTML und PHP mehrere freie Texteingabefelder als Tabelle angeordnet.
Bei der Druckansicht
(erste Seite: PHP mit option('part', 'all');
und letzte Seite PHP mit answersPrint('all'); text('printButton');)
werden zwar die eingegebenen Antworten ordnungsgemäß ausgegeben, ohne die Zuordnung zur Tabelle ist für die Ausfüller aber nicht mehr klar, worauf sich die Eingaben beziehen.
Wie kann für diese (in der ersten dieser Tabelle z. B. 8 Stück) Fragen entweder die umgebende Tabelle mit ausgegeben oder wenigstens zur Antwort die Frage-Beschreibung mit ausgegeben werden?
Ich habe im Handbuch von answersOption() gelesen, bei dem 'show-explanation' vielversprechend klingt, allerdings ist mir aus dem Text der Handbuch-Seite die konkrete Anwendung nicht klar geworden. Wo muss ich das wie angeben und wie beeinflusst das die bisherige Anwendung von option() und answersPrint()?
Vielen herzlichen Dank!

ago in SoSci Survey (dt.) by s114117 (130 points)
Wenn Sie eine Tabelle für die Druckansicht anzeigen möchten, werden Sie diese mittels HTML-Code bauen müssen.

Wie kommen denn die Eingabefeld im eigentlichen Fragebogen in die Tabelle? Arbeiten Sie mit einer kombinierten Frage, mit Platzhaltern oder mit einer ganz anderen Konstruktion?
Die Eingabefelder sind mit HTML-Bausteinen umgeben.
Der erste Block:
<table width="75%"; border=""; rules="all"; cellpadding="2";>
<colgroup>
    <col width="34%">
    <col width="33%">
    <col width="33%">
</colgroup>
<tr>
    <th>Altersgruppe</th>
    <th>männlich</th>
    <th>weiblich</th>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> 0 - 6 Jahre</b></td>
    <td>

dann die erste Frage aus der Seitenleiste reingezogen

zweiter HTML- Block:
</td>
    <td nowrap style="vertical-align:top;">

zweite Frage reingezogen usw.

Das nochmal nachzubauen ist an sich die elegantere Lösung, denke ich. Ich müsste nur wissen, wo ich das einfüge und wie ich es dann in der Druckansicht mit ausgeben kann.
Die Seitenüberschriften (Textbausteine) wären auch interessant mit in die Druckausgabe aufnehmen zu können, gibt es dazu eine einfache Lösung?

1 Answer

0 votes

Ich müsste nur wissen, wo ich das einfüge und wie ich es dann in der Druckansicht mit ausgeben kann.

Mit dem option('part', 'all'); definieren Sie ja den Beginn eines Abschnitts. Sie müssten also die Fragen vorher in einen Abschnitt packen und die Fragen nach der Tabellen-Frage in einen anderen Abschnitt. Das könnte so aussehen:

option('part', 'first');
// Fragen vorher
option('part', 'second');
// Tabellenfrage
option('part', 'third');
// Fragen nachher

Und dann könnten Sie mit

answersPrint('first');

Die Fragen vor Ihrer Tabellenfrage ausgeben. Dann eine Tabelle wie vorne im Fragebogen, nur dass Sie question() durch answers() ersetzen bzw. (falls Sie die Fragen einfach in die Seite gezogen haben) die hineingezogenen Fragen durch ein answers('AB01') u.s.w. ersetzen. Und danach

answersPrint('third');
ago by SoSci Survey (160k points)
Das funktioniert nur bedingt - die Tabelle wird zwar angezeigt, aber die Werte werden nicht eingesetzt (getestet über PreTest-Link).
So (natürlich mit Strichen drum rum) sieht es in der Druckansicht aus:
Altersgruppe    männlich                    weiblich                    Summe
0 - 6 Jahre    answers('MZ04')    answers('MZ05')    '.$MGZ1.'

Ich habe auf der Abschluss-Seite
PHP: answersPrint('first');
PHP: // Berechnung der Werte für die Tabelle "Migliederzahlen"
$M1 = value('MGZm06', 'free');
$W1 = value('MGZw06', 'free');
$MGZ1 = $M1 + $W1;
$M2 = value('MGZm713', 'free');
$W2 = value('MGZw713', 'free');
$MGZ2 = $M2 + $W2;
$M3 = value('MGZm1417', 'free');
$W3 = value('MGZw1417', 'free');
$MGZ3 = $M3 + $W3;
$M4 = value('MGZm1826', 'free');
$W4 = value('MGZw1826', 'free');
$MGZ4 = $M4 + $W4;
$MGZmGes = $M1 + $M2 + $M3 + $M4;
$MGZwGes = $W1 + $W2 + $W3 + $W4;
$MGZGes = $MGZmGes + $MGZwGes;
(genau diesen Baustein habe ich auch bereits auf der Seite nach der Erhebung der Daten stehen gehabt, gleiches Ergebnis... )
Dann die Tabelle in
HTML:
<h3>Mitgliederzahlen:</h3>
<table width="75%"; border=""; rules="all"; cellpadding="2";>
<colgroup>
    <col width="34%">
    <col width="22%">
    <col width="22%">
    <col width="22%">
</colgroup>
<tr>
    <th>Altersgruppe</th>
    <th>männlich</th>
    <th>weiblich</th>
    <th>Summe</th>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> 0 - 6 Jahre</b></td>
    <td nowrap style="vertical-align:top;">answers('MZ04')</td>
    <td nowrap style="vertical-align:top;">answers('MZ05')</td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZ1.' </b></td>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> 7 - 13 Jahre</b></td>
    <td nowrap style="vertical-align:top;">answers('MZ06')</td>
    <td nowrap style="vertical-align:top;">answers('MZ07')</td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZ2.' </b></td>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> 14 - 17 Jahre</b></td>
    <td nowrap style="vertical-align:top;">answers('MZ08')</td>
    <td nowrap style="vertical-align:top;">answers('MZ09')</td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZ3.' </b></td>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> 18 - 26 Jahre</b></td>
    <td nowrap style="vertical-align:top;">answers('MZ10')</td>
    <td nowrap style="vertical-align:top;">answers('MZ11')</td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZ4.' </b></td>
</tr>
<tr>
    <td style="vertical-align:bottom;"><b> Summe</b></td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZmGes.' </b></td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZwGes.' </b></td>
    <td nowrap style="vertical-align:top;"><b> '.$MGZGes.' </b></td>
</tr>
</table>
<p><br></p>
Ich rate jetzt einmal, dass es Dropdown-Felder sind, mit denen Sie arbeiten. In dem Fall können Sie statt answers('MZ04') einfach value('MZ04', 'label') einsetzen.

Die Funktion answers() liefert aber - genauso wie question() - keinen HTML-Code zurück, sondern bindet die Frage direkt auf der Seite ein. Deshalb funktioniert die Verkettung mit dem Punkt auch nicht.
...