Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „automatisch generierte Variablen auslesen. Text+nummerisch“

Kronod

Noch nicht viel geschrieben

Hallo ihr lieben :)

Ich bin gerade dabei, ein Onlineseminar zu erstellen.
Dieses wird per Javascript in einem neuen Fenster geöffnet.
Ich habe es soweit geschafft das der Benutzer auf der ersten Seite seine Daten eingeben kann (bisher ohne Überprüfung, ob was drinsteht => kommt aber noch). Zusätzlich wird ihm gesagt, wieviele Fragen/Aufgaben ihm bevorstehen und er kann wählen, wieviele Fragen/Aufgaben er pro Seite sehen möchte.
Die Seitenweiterschaltung funktioniert soweit.
Jetzt habe ich es geschafft, dass die Antwortmöglichkeiten z.B. <input type="radio">, automatisch ihre Nummern erhalten.
Bsp:
<input type="radio"> von Aufgabe 12 bekommt
<input name=\"radio_$q_nr\" type=\"radio\"> $q_nr steht für Aufgabennummer.
Dies sollte dazu dienen, dass z.B. auf Seite 5 immernoch gesehen wird, von welcher Aufgabe, welche Antwort kommt.
Und hier kommt das Problem.
Alle Daten, werden per $_POST weitergegeben. Ich möchte nun gerne per Abfrage wissen, ob Variablen wie z.B. $radio_(+ variable Nummer) übermittelt wurden.

Das Seminar könnt ihr hier testen: (Es sind ausgedachte Fragen und es wird nichts verschickt!)


Edit meint: Ihr könnt, aber müßt nicht, Benutzerdaten auf der ersten Seite angeben ;)

Die Formularelemente werden folgendermaßen formatiert:
PHP:
foreach($_POST as $key => $element){
    ${$key} = $element;
}
Um nun zu testen, ob ein radio-element inkl. Nummer übermittelt wurde, habe ich folgendes probiert. Hat aber nicht funktioniert.
PHP:
if(isset($radio_(1-$all_questions)){
echo "Frage gefunden";
}
Die Variable $all_questions hat in diesem Seminar den Wert 34, da es 34 Fragen sind. Diese Zahl wird automatisch erstellt, da die Anzahl Fragen ja pro Seminar variieren kann ;)

Wenn ihr noch mehr Code braucht, gebe ich euch gerne mehr. Aber evtl. hat ja schon jemand eine Lösung :)

Mit freundlichen Grüßen
Kronod
 

netbandit

Aktives Mitglied

AW: automatisch generierte Variablen auslesen. Text+nummerisch

Übermittel doch einfach ein Array, erleichtert einiges, Beispiel:

HTML:
<input name="radio[frage01]" type="radio" value="1">
<input name="radio[frage01]" type="radio" value="2">
<input name="radio[frage01]" type="radio" value="3">
<hr>
<input name="radio[frage02]" type="radio" value="1">
<input name="radio[frage02]" type="radio" value="2">
<input name="radio[frage02]" type="radio" value="3">
Dann stehen folgende Werte zur Verfügung
PHP:
$_POST['radio']['frage01']
$_POST['radio']['frage02']
 
Zuletzt bearbeitet:

Kronod

Noch nicht viel geschrieben

AW: automatisch generierte Variablen auslesen. Text+nummerisch

Oh Mann :rolleyes:

Kopf=>Tisch oder Brett vorm Kopf.

funktioniert..

Vielen Dank
 

Kronod

Noch nicht viel geschrieben

AW: automatisch generierte Variablen auslesen. Text+nummerisch

Hallo,

@pgagei: Danke für Deine Antwort, wenn auch recht spät. schrieb ja schon, das es funktioniert.

Aber hier nochmal der kleine Codeschnipsel, welcher bereits vorhanden Post-Daten verarbeitet:
PHP:
//bereits übergebene Antworten einfügen und in versteckten Formularfeldern ausgeben
for($h = "1"; $h < $all_questions; $h++){
    if(isset($_POST['radio'][$h])){
    $radioval = $_POST['radio'][$h];
    echo "<input name=\"radio[$h]\" type=\"hidden\" value=\"$radioval\">\n";
    }
    if(isset($_POST['statement'][$h])){
    $textareaval = $_POST['statement'][$h];
    echo "<textarea name=\"statement[$h]\" rows=\"10\" cols=\"50\" style=\"display:none\">".$_POST['statement'][$h]."</textarea>\n";
    }
    for($l = "0";$l < $qlength; $l++){
        if(isset($_POST["checkbox_$l"][$h])){
        $checkboxval = $_POST["checkbox_$l"][$h];
        echo "<input name=\"checkbox_".$l."[$h]\" type=\"hidden\" value=\"$checkboxval\">\n";
        }
    }
}
Dieser wandelt die Daten dann gleich wieder in versteckte <input> bzw. <textarea> um
Daten, die auf der aktuellen Seite benötigt und dementsprechend nicht mehr versteckt ausgegeben werden müssen, werden mit einer anderen Abfrage zuvor "unset"et ;)

Hier ein Ausschnitt:
PHP:
if(stristr($tagformat, '<input type="radio"') && isset($_POST['radio'][$q_nr]) && stristr($tagformat,"value=\"".$_POST['radio'][$q_nr]."\"") ){
        echo strtr($tagformat,$format_q_exists);
        unset($_POST['radio'][$q_nr]);
        }else if(stristr($tagformat, '<input type="checkbox"') && isset($_POST["checkbox_$t"][$q_nr]) && stristr($tagformat,"value=\"".$_POST["checkbox_$t"][$q_nr]."\"") ) {
        echo strtr($tagformat,$format_q_exists);
        unset($_POST["checkbox_$t"][$q_nr]);
        }else if(stristr($tagformat, '<textarea>') && isset($_POST['statement'][$q_nr]) ) {
        echo "<textarea name=\"statement[$q_nr]\" rows=\"10\" cols=\"50\">".$_POST['statement'][$q_nr]."</textarea>";
        unset($_POST['statement'][$q_nr]);
        }else{
        echo strtr($tagformat,$format_q_num);
        }
Bei Fragen oder Anregungen, gerne hier melden.

Gruß

Kronod
 

Kronod

Noch nicht viel geschrieben

AW: automatisch generierte Variablen auslesen. Text+nummerisch

ok hier bin ich mal wieder ;)

ich stehe nun vor einem neuen Problem.
das ganze Seminar soll per mail() versandt werden.
nun habe ich z.B. variablen $radio[1] - $radio[15].
gibt es eine Möglichkeit diese Variablen in einen String einzufügen ?
also Bsp:


PHP:
<?php

echo "Antworten:" . $radio[1]-radio[15] . "hier kommt der Rest der Mail";

?>
Formatieren würde ich es im Nachhinein. Es geht erstmal nur um die reine Möglichkeit.

Mir ist klar, dass man keine if() Abfrage in eine Variable packen kann.
Aber evtl. gibts ja ne andere Möglichkeit Variablen "von bis" auszugeben.
Wenn einer nen Link zu sonem Thema hätte würds mir schon reichen.
Bin ja nicht des Lesens faul ;)
selfphp, google etc. hab ich durch, aber nie das Richtige oder einen guten Ansatz gefunden :(

Gruß
Kronod
 

saila

Moderatorle

AW: automatisch generierte Variablen auslesen. Text+nummerisch

Hi,

klar und zwar mit sprintf()

Sieht folgendermassen aus:

PHP:
<?php
/*
* vorweg klären wieviele Antworten vorhanden
*/
for($i = 0; $i < count($radio); $i++) {
  $leerfelder .= "%s \n\r";
}

/*
* dein text welcher ja zuvor defniert wird (meist/immer)
*/
$meinText = "Hallo %s,\n\n\rhier die die antworten: ". $leerfelder;
$mailText = sprintf($meinText, $radios[1], $radio[2], 'usw.');
?>
Das ganze kann natürlich super angepasst werden.

Das Ergebis kann man wie folgt prüfen bevor die Mail gesendet wird und ob der Zusammenbau korrekt ist:
PHP:
<?php
echo $mailText;
?>
Die Aufbauweise ist korrekt jedoch nicht für das Beispiel getestet ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.879
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben