lulu: umfangreiches Formular per Email

Beitrag lesen

Huhu Kiska

das löst allerdings nicht das problem der Felderzuordnung, wenn ich zurückblättern möchten, sind die Daten zwar da, aber eben "hidden". oder?

man sollte das ganze am Besten über nur eine Skript-Datei "bürsten"

beim Zurückblättern wird das Formular dann ebenfalls abgeschickt, Du musst das dann entsprechen auswerten.

Die Logik müsste ja ungefähr so ausschauen:

abschicken -> Alle Werte ok -> nächste Seite (bzw. fertig)
abschicken -> Nicht  ok -> gleiche Seite nochmal
zurückblättern -> eine Seite zurück

Du musst eigentlich nur alle post-vars als hidden ausgeben, mit Ausnahme der Felder der aktuellen Seite.

Ich klatsche hier gerade mal zwei Funktionen rein die das erledigen

*kram auf der HDD*

function BuildHiddenFields($arr)
{
 global $CurrentPageVars;

$result='';
 foreach ($arr as $k=> $v){
  if(in_array($k,$CurrentPageVars) )continue;
  if(is_array($v)){
   foreach($v as $one){
    $result.=Hidden($k,$one,true);
   }
  } else {
   $result.=Hidden($k,$v);
  }
 }
 return $result;
}

function Hidden($nme,$content,$is_arr=false)
{
 $content=htmlentities($content);
 if($is_arr){
  $nme.='[]';
 }
 return sprintf('<input type="hidden" name="%s" value="%s">',$nme,$content);
}

in $CurrentPageVars stehen die Feldnamen der aktuellen Seite drin
diese werden dann enstsprechend (je nach type natürlich unterschiedlich) ausgegeben

also z.B.

$CurrentPageVars=array('Name','Strasse');

foreach ($CurrentPageVars as $k){
 printf ('<input type="text" name="%s" value="%s"',$k,$HTTP_POST_VARS[$k] );
}

$hf=$HTTP_POST_VARS;
echo BuildHiddenFields($hf);

so in etwa jedenfalls

ansonsten hilft Dir evtl. die phplib weiter da gibt es eine
Klasse für Forms "ooforms" (o.ä.)

Viele Grüße

lulu