switch

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • switch

    Ich habe einen $action switch in meiner Datei, diese Datei included eine andere .php Datei von einem anderen Ordner. In der includeten Datei gibt es aber noch einen $action, wenn ich diesen aufrufe wird lediglich nur der default switch angezeigt, was kann ich da machen ?

  • #2
    wie wäre es mit ein bißchen code

    Comment


    • #3
      Wie ist das gemeint ?

      Comment


      • #4
        Wir kennen doch deinen Code nicht, es fällt leichter Probleme zu lösen wenn du uns den bereits vorhandenen Code oder Teile des Codes hier postest nutze dazu am besten noch den Tag [ php] [/ php] (ohne Leerzeichen) dann wird der code schön bunt und besser lesbar

        Comment


        • #5
          Du kannst die Datei auch erst nach dem switch includen... Dann ändert sich $action erst nach dem switch hat allerdings nur einen neuen Wert wenn in der includeten Datei $action definiert wird ($action = 'Hello'; )
          Allerdings solltest Du auf Variablennamen achten wenn Du Dateien includest. --> Keine Doppelbenennungen
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Comment


          • #6
            Original geschrieben von MelloPie
            Du kannst die Datei auch erst nach dem switch includen... Dann ändert sich $action erst nach dem switch hat allerdings nur einen neuen Wert wenn in der includeten Datei $action definiert wird ($action = 'Hello'; )
            Allerdings solltest Du auf Variablennamen achten wenn Du Dateien includest. --> Keine Doppelbenennungen
            Das heisst es darf nicht zwei mal der $action Switch vorkommen ?

            Comment


            • #7
              Das heisst Du kannst den switch vor dem includen machen da hat $action den alten Wert, dann bekommt $action durch includen evt. einen anderen Wert. Du kannst dann noch tausend weitere switchs machen.
              Und Du darfst auch mal ein bisschen nachdenken.
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Comment


              • #8
                Ich zeige mal den eigentlichen Code. Im genauerem tritt der Fehler aus, beim Link zu den Details eines bestimmten Clanwars.

                Das hier ist die im Rootverzeichnis liegende index.php:

                PHP Code:
                <?
                switch($action){ 
                case "clanwars": include("clanwars/index.php"); break; 
                default: echo "<center>root directory</center>"; break; }
                ?>
                Hier im Rootverzeichnis nun der Link zu den Clanwars:

                PHP Code:
                <?
                echo "<a href='index.php?action=clanwars'>Clanwars</a>";
                ?>
                Nun bin ich in der Clanwarsection, da sich hier zuviel Code befindet hab ich nur den Link zu den Clanwardetails angegeben:

                PHP Code:
                <?
                echo "<a href='index.php?action=detail&warid=2'>Details</a>";
                ?>
                Jetzt springt er aber zum Default-Switch und es wird "root directory" ausgegeben.

                Hier sind nochmal Switch-Auschnitte aus der index.php des Clanwars-Verzeichnisses (clanwars/index.php):

                PHP Code:
                <?
                if ($action == "" || $action == "viewall"){
                ?>
                Hiernach steht nun der HTML-Code der aufgelisteten Clanwars. Weiter unten in der Datei steht nun folgendes:

                PHP Code:
                <?
                }
                elseif($action == "detail")
                {
                $query = "SELECT * FROM $war_tname WHERE warid='$warid'";
                $war_result = mysql_query($query); 

                while ($data = mysql_fetch_array($war_result)) {
                ?>
                Hiernach stehen die Clanwar-Details im HTML-Code.

                Jetzt ist nur meine Frage wie ich das Problem lösen kann ? Wäre nett wenn mir jemand weiterhelfen könnte, was ich denn tun kann.

                Comment


                • #9
                  du rufst bei nem klick auf den link
                  Code:
                  <a href='index.php?action=detail&warid=2'>Details</a>
                  die index.php auf und in der index.php geht er logischerweise in den default teil des switches, da detail nicht clanwars is.

                  lösung:
                  PHP Code:
                  switch($action)

                     case 
                  "detail":
                     case 
                  "clanwars": include("clanwars/index.php"); break; 
                     default: echo 
                  "<center>root directory</center>"; break; 

                  solltest dir aber überlegen, ob du den parameter für details nich anders nennst, sonst wird sowas ganz schnell unübersichtlich
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Comment


                  • #10
                    Also, wenn ich nun den Code:

                    PHP Code:
                    switch($action)

                       case 
                    "detail":
                       case 
                    "clanwars": include("clanwars/index.php"); break; 
                       default: echo 
                    "<center>root directory</center>"; break; 

                    benutze, dann wird nur die clanwars/index.php angezeigt und nicht die details.

                    Comment


                    • #11
                      in der clanwars/index.php prüfst du doch auch, was für nen wert $action hat oder?

                      wie sieht die prüfung aus, du hast ja wahrsceinlich noch was vor
                      PHP Code:
                      elseif($action == "detail"
                      Last edited by mrhappiness; 08-03-2003, 10:59.
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Comment


                      • #12
                        Also in der clanwars/index.php steht nach

                        PHP Code:
                        <?
                        }
                        elseif($action == "detail")
                        {
                        $query = "SELECT * FROM $war_tname WHERE warid='$warid'";
                        $war_result = mysql_query($query); 

                        while ($data = mysql_fetch_array($war_result)) {
                        ?>
                        der html code der clanwardetails und am ende

                        PHP Code:
                        <?

                        }
                        ?>

                        Comment


                        • #13
                          Original geschrieben von mrhappiness
                          in der clanwars/index.php prüfst du doch auch, was für nen wert $action hat oder?

                          wie sieht die prüfung aus, du hast ja wahrsceinlich noch was vor
                          PHP Code:
                          elseif($action == "detail"
                          man beachte das wort vor!!!
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Comment


                          • #14
                            ja ich wüsste gerne was ich hierbei tun kann

                            Comment


                            • #15
                              was steht vor dem teil, den du gepostet hast?

                              dein skript kann ja nich mit elseif anfangen!
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Comment

                              Working...
                              X