switch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


    • #3
      Wie ist das gemeint ?

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #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 ?

            Kommentar


            • #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

              Kommentar


              • #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.

                Kommentar


                • #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...

                  Kommentar


                  • #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.

                    Kommentar


                    • #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"
                      Zuletzt geändert von mrhappiness; 08.03.2003, 11:59.
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #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:
                        <?

                        }
                        ?>

                        Kommentar


                        • #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...

                          Kommentar


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

                            Kommentar


                            • #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...

                              Kommentar

                              Lädt...
                              X