PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen ID von xml-Datei merken


sju
10.08.2009, 21:30:08
Hallo zusammen,

habe eine if- / else Funktion programmiert.
Das erste Mal springt er in die else-Schleife, da ich noch nicht auf den Submit-Button geklickt habe und lädt die xml Tags aus der xml-Datei mit id=0 raus.
Wenn ich dann auf Submit drücke, springt er in die if-Schleife und zeigt mir dann auch die xml Tags mit der id=1 an.
Doch danach ist Schluss.
Wie kann ich es hinbekommen, dass ich beim nächsten Drücken auf den Submit-Button nun die id=2 bekomme?
Er müsste sich in der if-Schleife irgendwie die $id=1 speichern, damit er das nächste mal bei $id=$id+1 es hochzählt.
Aber irgendwie habe ich im Moment ein Brett vor dem Kopf.

Für Hilfe wäre ich sehr dankbar.


<?php
if(isset($_POST['senden'])){
$xml = simplexml_load_file('contract.xml');
$id=$id+1;
$titel = $xml->titel;
$einleitung = $xml->fragen[$id]->einleitung;
$question = $xml->fragen[$id]->frage;
$input = $xml->fragen[$id]->input;
$description = $xml->fragen[$id]->description;
$change = $xml->fragen[$id]->change;
$fulltext = $xml->fragen[$id]->fulltext;
$ausgabe = $fulltext;
$bezeichnung = $xml->fragen[$id]->bezeichnung;
$weiter = $xml->fragen[$id]->weiter;

echo "<form method='post' action='contract.php' accept-charset='UTF-8'>";
echo $question;
echo "<br>";
echo "<br>";
echo $bezeichnung;
echo "<br>";
echo "<br>";

switch ($input) {

case "text":
echo "<input type='text' name=''>";
break;

case "textarea":
echo "<input type='textarea' name=''>";
break;

case "checkbox":
echo "<input type='checkbox' name='' value='Ja'> <input type='checkbox' name='' value='Nein'>";
break;

}
echo "<p><input type='submit' name='senden' value='Weiter'></p>";
echo "</form>";


} else {
$xml = simplexml_load_file('contract.xml');
$id=0;
$titel = $xml->titel;
$einleitung = $xml->fragen[$id]->einleitung;
$question = $xml->fragen[$id]->frage;
$input = $xml->fragen[$id]->input;
$description = $xml->fragen[$id]->description;
$change = $xml->fragen[$id]->change;
$fulltext = $xml->fragen[$id]->fulltext;
$ausgabe = $fulltext;
$bezeichnung = $xml->fragen[$id]->bezeichnung;
$weiter = $xml->fragen[$id]->weiter;


echo "<form method='post' action='contract.php' accept-charset='UTF-8'>";
echo $question;
echo "<br>";
echo "<br>";
echo $bezeichnung;
echo "<br>";
echo "<br>";

switch ($input) {

case "text":
echo "<input type='text' name=''>";
break;

case "textarea":
echo "<input type='textarea' name=''>";
break;

case "checkbox":
echo "<input type='checkbox' name='' value='Ja'>Ja <input type='checkbox' name='' value='Nein'>Nein";
break;


}
echo "<p><input type='submit' name='senden' value='Weiter'></p>";
echo "</form>";
}
?>

vt1816
10.08.2009, 21:48:41
echo "<form method='post' action='contract.php' accept-charset='UTF-8'>";


Hier den Wert mitgeben den Du als nächstes erwartest und in der Datei contract.php dann entsprechend auswerten.

Oder Sessions (http://de.php.net/manual/de/features.sessions.php) benutzen.

sju
11.08.2009, 09:24:28
Der php-Code, den ich gepostet hatte, steht schon in der Datei contract.php, wird also auf sich selbst verwiesen.

Habe es mit echo "<input type='hidden' name='idnummer' value='$id+1'>" probiert, hat aber nicht funktioniert. Das Problem ist, dass §id nicht definiert ist, wenn er in die if-Schleife reingeht.

Wenn ich es mal mit Sessions probieren will, wo muss ich dann genau im Code die Sessions anbringen?

vt1816
11.08.2009, 10:27:28
Der php-Code, den ich gepostet hatte, steht schon in der Datei contract.php, wird also auf sich selbst verwiesen.


Prima. Dann muss da also auch die Verarbeitung rein.


Habe es mit echo "<input type='hidden' name='idnummer' value='$id+1'>" probiert, hat aber nicht funktioniert. Das Problem ist, dass §id nicht definiert ist, wenn er in die if-Schleife reingeht.

Das Teil muss in den if-Zweig und so sollte aussehen:
echo "<input type='hidden' name='idnummer' value='" .$id+1 ."'>"



Wenn ich es mal mit Sessions probieren will, wo muss ich dann genau im Code die Sessions anbringen?
Probiere es erst mit dem obigen Lösungsansatz - Sessions solltest Du Dir - aufgrund Deines heutugen Wissenstandes - für zukünftige Projekte aufheben.

sju
12.08.2009, 15:07:46
Habe mich heute vormittag in Sessions eingearbeitet und eine elegante Lösung gefunden.

Besten Dank für die Tipps und Hilfe! Tolles Forum!