Mehrfach Formular

Hallo zusammen,

ich würde gern ein solch Formular wie dieses erstellen: http://www.msg.de/initiativbewerbung.0.html

Ich habe bereits mehrfach gegoogelt und auch schon ausprobiert mit verschiedenen Javascripts, doch leider ohne Erfolg.

Wie erstelle ich solch ein formular, welches auch in firefox funktioniert?

Die meisten scripts die ich hatte (wie dieses: http://www.jswelt.de/index.php?openc…tid=1006720812), funktionierten im Firefox nämlich nicht. Nur dieses von der msg seite funktioniert bei mir in allen Browsern.

Vielen Dank

Hallo

ich würde gern ein solch Formular wie dieses erstellen:
http://www.msg.de/initiativbewerbung.0.html

Wenn ich das richtig verstehe, willst du das Formular mit Javascript bauen.

  1. Warum fragst du dann im PHP-Brett?
  2. Javascript ist clientseitig, wird also direkt im Browser ausgeführt. Demzufolge befindet sich der Javascript-Code auf denem Rechner und du kannst ihn ganz einfach anschauen. Warum siehst du nicht einfach nach wie die Seite gemacht wurde? Ansicht-Seitenquelltext anzeigen. Dann ein wenig runterblättern und du findest folgendes:

pages = new Array();
pages[0] = „tx_msgjobform_pi1_page_1“;
pages[1] = „tx_msgjobform_pi1_page_2“;
… (weiterer Code) …

classnames = new Array();
classnames[0] = „tx_msgjobform_pi1_auswahl_inaktiv“;
classnames[1] = „tx_msgjobform_pi1_auswahl_aktiv“;

tabs = new Array ();
tabs[0] = „tx_msgjobform_pi1_auswahl_stelle“;
tabs[1] = „tx_msgjobform_pi1_auswahl_daten“;
… (weiterer Code) …

function changeToPage (target) {
target–;
for (x = 0; x

und so weiter.

Gruß Johannes

Hallo,

ich habe es in php gesetzt, weil ich es eigentlich nur mit php realisieren möchte (fortrangig) da nicht jeder javascript aktiviert hat.

Und den Seitenquelltext hab ich mir als erstes angesehen, nur komme ich damit nicht wirklich zurecht, da ich mich in Javascript nicht so gut auskenne und weiß was die einzelnen codes bedeuten.

Hallo

ich habe es in php gesetzt, weil ich es eigentlich nur mit php
realisieren möchte (fortrangig) da nicht jeder javascript
aktiviert hat.

Ok, da hast du recht. Der Nachteil einer Umsetzung ganz ohne Javascript ist, dass nach jedem Klick af ‚Weiter‘ oder ‚nächste Seite‘ die ganze Seite neu vom Server geladen werden muss.

Ich weiß ja nicht wie gut du dich in PHP auskennst, in den FAQ zum Brett PHP gibt viele hilfreiche Hinweise und Links.

So ungefähr könnte dass Script dann zB aussehen:

<?php // Anzahl der Formularseiten<br />define('SEITENANZAHL',3);

function schrift($text)
{
 global $form\_page,$active\_page;
 if ($form\_page == $active\_page) echo $text;
}

function inputfield($name,$type,$value = '')
{
 global $form\_page,$active\_page;
 if (($type == 'text') or ($type == 'password'))
 $ret = '<input type="'.(($active_page == $form_page) ? $type : 'hidden').'" name="'.$name.'" value="'.htmlspecialchars((isset($_POST[$name])) ? $_POST[$name] : $value).'">';

 elseif (($type == 'radio') or ($type == 'checkbox'))
 {
 if (!isset($\_POST[$name]))
 $\_POST[$name]='';
 if ($active\_page == $form\_page)
 $ret = '';
 elseif ($\_POST[$name] == $value)
 $ret = '';
 else
 $ret = '';
 }

 elseif ($type == 'textarea')
 {
 if ($active\_page == $form\_page)
 $ret = ''.htmlspecialchars((isset($\_POST[$name])) ? $\_POST[$name] : $value).'';
 else
 $ret = '';
 }
 else
 $ret = 'Unbekannter Eingabetyp';
 echo $ret;
}

// ------------- Hauptprogramm ---------------

// Alle Daten ausgeben, wenn auf 'absenden' geklickt
if (isset($\_POST['senden']))
 { echo ' '; print\_r($\_POST); echo ' '; }
else
{
 // Herausfinden, welche Seite jetzt angezeigt werden soll
 if ((!isset($\_POST['oldpage'])) or (!ctype\_digit($\_POST['oldpage'])) or ($\_POST['oldpage'] SEITENANZAHL))
 $\_POST['oldpage'] = '1';

 if (isset($\_POST['vor']))
 $active\_page = min($\_POST['oldpage'] + 1, SEITENANZAHL);
 elseif (isset($\_POST['zurueck']))
 $active\_page = max($\_POST['oldpage'] - 1, 1);
 else
 $active\_page = $\_POST['oldpage'];

 // Formular ausgeben
 echo '

';
echo 'Seite '.$active_page."
\n";

// Seite 1
$form_page = 1;
schrift('Vor- und Nachname: ');
inputfield(‚vorname‘, ‚text‘);
inputfield(‚nachname‘, ‚text‘);
schrift("
\n");
schrift('Alter: ');
inputfield(‚alter‘, ‚text‘);
schrift("
\n");
schrift('Alter: ');
inputfield(‚geschlecht‘, ‚radio‘, ‚m‘);
schrift(‚männlich‘);
inputfield(‚geschlecht‘, ‚radio‘, ‚w‘);
schrift(‚weiblich‘);
schrift("
\n");

// Seite 2
$form_page = 2;
schrift('Straße und Hausnummer: ');
inputfield(‚strasse‘, ‚text‘);
inputfield(‚hausnr‘, ‚text‘);
schrift("
\n");
schrift('PLZ und Ort: ');
inputfield(‚ort‘, ‚text‘);
inputfield(‚ort‘, ‚text‘);
schrift("
\n");

// Seite 3
$form_page = 3;
schrift('Hobbys: ');
inputfield(‚hobby1‘, ‚text‘);
schrift("
\n");
inputfield(‚hobby2‘, ‚text‘);
schrift("
\n");
inputfield(‚hobby3‘, ‚text‘);
schrift("
\n");
schrift('Sonstiges: ');
inputfield(‚sonstiges‘, ‚textarea‘);
schrift("
\n");

// Buttons ausgeben
echo ‚‘;
echo ‚‘;
echo ‚‘;

echo ‚‘;

}

?>

Gruẞ Johannes

Hallo Johannes,

vielen lieben Dank das hat mir sehr geholfen…

jetzt habe ich die „Seiten“ erstellt, nur leider fehlt mir nur noch eine „Verlinkung“ von meiner eigentlichen Navi…

Ich habe z.B. folgende horizontale navi erstellt. Gemeinsam mit den php Code befindet sich diese Navi in testneu.php.

Gibt es eine Möglichkeit, das er die Seiten auch per klick aufruft? Also nicht immer weiter „weiter“ klicken muss?

Hallo

Beim Wechsel zwischen den Seiten muss ja immer das Formular abgeschickt werden. Mit gewöhnlichen Links geht das nur mit Javascript.
Aber du kannst einen Button für jede Seite reinbasteln.

if (isset($\_POST['seite1'])) $active\_page=1;

oder:

for ($i=1;$i';
 else
 echo $i;
}




for ($i=1;$i
Den kannste dann mit CSS auch wie einen Link formatieren:


    background-color:transparent;
    color:blue;
    text-decoration:underline;
    cursor:stuck\_out\_tongue:ointer;
    border-style:none;

hallo Johannes,

muss ich irgendwas beachten, wohin ich den code der buttons setz?

Bei mir funkioniert es nicht bzw. er macht nichts wenn ich auf die Button klick.

Der Code der den Button erzeugt muss im Formular sein, wo genau ist egal.
Der Code der den Button auswertet gehört in den Abschnitt ‚Herausfinden, welche Seite jetzt angezeigt werden soll‘

Johannes