Seite 1 von 1

if-elseif-schleifen problem, parse error oder endlosschleife

Verfasst: 23.02.2003 11:55
von kOOni
Man soll in einem script

in ein Formular schreiben, es abschicken, das nächste ausfüllen, es abschicken usw.

das eine baut sich auf dem vorherigen auf, außer beim ersten formular.

nun wollt ich das über eine forschleife lösen, hier mein code:

Code: Alles auswählen

for($if=0;$if<=2;$if++)

{

        if($if=0)

        {

              echo "irgendwas";

        }



        if($if=1)

        { 

              echo "irgendwas2";

        }



        if($if=2)

        {

             echo "irgendwas3";

        }

}
doch da werden nur die drei if-inhalte ausgegeben:

Code: Alles auswählen

 irgendwasirgendwas2irgendwas3
und wenn ich es über if-elseif-else löse kommt eine endlosschleife zustande, hier der code:

Code: Alles auswählen

for($if=0;$if<=1;$if++)

{

        if($if=0)

        {

              echo "irgendwas";

        }



        elseif($if=1)

        { 

              echo "irgendwas2";

        }



        else

        {

             echo "irgendwas3";

        }
bitte helft.


kOOni

Verfasst: 23.02.2003 12:01
von PhilippK
Man sollte vielleicht bedenken, dass der Vergleichsoperator bei PHP aus zwei Gleichheitszeichen besteht. :-D
Da du bei jedem Vergleich der Variable $if einen neuen Wert zuweist, kann das auch nicht klappen...

Gruß, Philipp

ups

Verfasst: 23.02.2003 12:03
von kOOni
danke ich probiers mal. :oops:


kOOni

geht immer noch nicht

Verfasst: 23.02.2003 12:09
von kOOni
der schreibt nun, egal was ich für eine Variante verwende, immer noch alles wieder hin !

es soll:

- erst irgendwas angezeigt werden, dann klick ich auf submit und dann
- erst soll irgendwas 2 angezeigt werden und erst dann am ende, nach dem ich wieder auf submit klicke
- soll irgendwas 3 angezeigt werden

ist das über haupt mit einer for-Schleife zu realisieren oder brauch ich da was anderes ?


kOOni

Verfasst: 23.02.2003 13:24
von PhilippK
Hast du jetzt das doppelte Gleichheitszeichen verwendet? (hört sich nämlich nicht so an):

Code: Alles auswählen

if($if==1)
Gruß, Philipp

Re: geht immer noch nicht

Verfasst: 23.02.2003 15:01
von Pyramide
kOOni hat geschrieben:ist das über haupt mit einer for-Schleife zu realisieren oder brauch ich da was anderes ?
Nein, das geht nicht mit einer for-Schleife. Die Schleife zählt ja immer von 0 bis 2, egal welche Seite du aufrufst.

AFAIK ist eine Anleitung inkl. Quellcode zu deinem Problem schon im Forum vorhanden, aber ich finde sie im moment nicht :(. Aber es funktioniert so, daß du in das HTML-Formular ein verstecktes Feld einfügst, in welchem der nächste Schritt eingetragen ist. Und dieses Feld verwendest du dann in der if-/switch Bedingung.

danke, ich versuchs

Verfasst: 23.02.2003 15:16
von kOOni
gut ich probiers mal. danke :P

endlich

Verfasst: 23.02.2003 17:19
von kOOni
habs !

nun der endlich richtige Code:

Code: Alles auswählen


if (!$if)

{

       echo "<form......  <input type='hidden' name='if' value='2'>

}



if ($if==2)

{

       echo "<form.....  <input type='hidden' name='if' value=3'>

}



if ($if==3)

usw. 



Aber, das ich auf sowas simples nicht gleich gekommen bin.


kOOni

Verfasst: 23.02.2003 19:01
von Advanced-Rookie
sauber gemacht!!!