Per Button, Datei includen

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

  • Per Button, Datei includen

    Hallo @all

    Hab mal wieder ein Anfänger prob, ich hoffe Ihr könnt mir helfen.
    Hier der Code
    PHP-Code:
    <?php
    // Das ist eine Testdatei die wird includet 
    // hab 3 Schalter (sollen mehr werden) Banner, Ordner, Dateien.
    // Die Schalter werden auch fein angezeigt.
    // Wenn ich auf ein drücke möchte ich das eine bestimmte Datei includet wird
    // Ka wie ich das anstellen kann, hab schon stundenlang rumprobiert.
    // Hat jemand ne Idee???

    $kl_schalter = array(
                     
    => array(
                                 
    'name' =>     'Banner',
                                
    'icon'     =>     '',
                                
    'link'    =>    'variablen/banner.php',
                                ),
                     
    11 => array(
                                 
    'name' =>     'Ordner ',
                                
    'icon'     =>     '',
                                
    'link'    =>    'variablen/ordner.php',
                                 ),
                    
    20 => array(
                                 
    'name' =>     'Dateien ',
                                
    'icon'     =>     '',
                                
    'link'    =>    'variablen/dateien.php',
                                 ),
                     
                        );

    if(isset(
    $_GET['zahl']) AND isset($kl_schalter[$_GET['zahl']]))
    {
        if(isset(
    $_POST['$kl_schalter']))
        {
            include 
    $kl_schalter[$_GET['zahl']]['link'];
        }
    }

    echo 
    '
    <form action="inc_kategorien_links.php"                                
                        method="post">
        <span> Die ersten Bilderpfade in die Tabelle eintragen </span><br />
        '
    ;
    // hier werden die 3 Schalter erzeugt        
            
    foreach($kl_schalter as $link => $v)
            {
                
            
                echo 
    '    <span><input type="submit" 
                            name="'
    .$kl_schalter.'" value="'.$v['name'].'" />&nbsp;</span>';
                        
                echo 
    '<br />';
            }
        echo
    '
        </form>
        '
    ;
    // Zum testen geht aber leider nicht    
    if(isset($_POST["$kl_schalter"])) 
    {
        
        echo
    '
        
        zeig mal den link an: '
    .$kl_schalter["$link"]['link'].'<br />
        <br />'
    .$link.'<br />
        
        '
    ;    
    }
    ?>
    LG
    Susanne

  • #2
    Da müssen doch irgendwelche Fehlermeldungen erscheinen, wenn mit include etwas nich stimmen sollte?
    Wäre gut, wenn du die posten könntest.

    Und gib mal den Inhalt von
    PHP-Code:
    <?php
    $kl_schalter
    [$_GET['zahl']]['link']
    ?>
    aus.

    Kommentar


    • #3
      Hallo

      @$_Baker
      Ein fehler erscheint nicht, es wird die letzte Datei includet in meinem
      Fall diese: variablen/dateien.php.

      wenn ich
      $kl_schalter[$_GET['zahl']]['link']
      mit echo abfrage kommt das an: variablen/dateien.php
      und egal auf welchen Schalter ich klicke.

      In meinem code sind:
      ein bestimmt mehr fehler drinn,
      irgendwas mach ich da verkehrt.

      Um mein prob zu lösen könnte ich jeden Schalter einzeln setzen
      und einen eindeutigen namen geben, zb.
      Schalter01, Schalter02, Schalter03.

      und dann jeden einzeln abfragen zb. mit.

      PHP-Code:
      if(issert($_POST[Schalter01]))
      {
      include(
      variablen/banner.php);
      }
      if(
      issert($_POST[Schalter02]))
      {
      include(
      variablen/ordner.php);
      }
      if(
      issert($_POST[Schalter03]))
      {
      include(
      variablen/dateien.php);

      Es moch doch aber irgendwie anders gehn, hat jemand ne gute Idee?

      LG
      Susanne

      Kommentar


      • #4
        Es sind mehrere Fehler in deinem Script:

        1: if(isset($_POST['$kl_schalter'])): warum packst du die Variable in Hochkommata ein?

        2: $kl_schalter ist ein Array, also was soll: name="'.$kl_schalter.'" werden?

        3: if(isset($_POST["$kl_schalter"])) wenn dann ohne ". Manchmal frage ich mich, welcher Idiot von den PHP-Entwickler damals war auf die Idee gekommen, Variable direkt in String einbetten zu ermöglichen. Das verwirrt die Anfänger, die der deutschen/englischen/wasauchimmer Spache nicht mächtig sind, und daher meinen sie, sie müssen alle Variable in String einpacken, um verwenden zu können. Stattdessen, wenn man nur die Stringverkettung oder formatierte Ausgabe zulässt, dann kommt solcher idiotischer Programmierstil nie zum Vorschein.
        Zuletzt geändert von asp2php; 24.03.2008, 12:52.

        Kommentar


        • #5
          Hallo

          @ asp2php
          zu 1: if(isset($_POST['$kl_schalter']))
          müste ich dann so schreiben: if(isset($_POST["$kl_schalter"]))?
          wenn ich es so mache: if(isset($_POST[$kl_schalter]))
          kommt ne fehlermeldung array is emty.

          zu 2: da hast bestimmt recht.
          was müste da stehn, dass es klappt?

          zu 3:
          wenn ich es ohne " " mache kommt ne fehler medung das das array leer ist.

          LG
          Susanne

          Kommentar


          • #6
            Die " haben nichts um Variablen verloren. Doublequotes sind Delimiter (Begrenzungszeichen) für Zeichenketten. Keine Ahnung, wieso dieser Quatsch so weit verbreitet ist, aber er ist dennoch Quatsch.
            Der einzige Grund, weswegen man soetwas machen wollen könnte, wäre die Typisierung nach String, aber dafür gibt es Funktionen und Konstrukte. (string), strval(), settype($var, 'string') ...

            Also vergiss das schnell wieder

            P.S.
            Mein pesönlicher Favorit ist ja "" . $var . "";
            Was denkt man sich dabei?
            Zuletzt geändert von Griecherus; 24.03.2008, 13:25.
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #7
              Hallo


              @Griecherus
              ok die "" bei den variablen sind nun weg, wenn ich die Datei ausführe erhalte die Fehlermeldung:
              Warning: Illegal offset type in isset or emty in (pfad zur Datei) line 55
              ist das:
              if(isset($_POST[$kl_schalter]))

              wie kann ich es nun erreichen das per klick auf ein Schalter die Datei includet wird?
              Ich muss noch andere fehler drinn haben, weil es ja nicht klappt.


              LG
              Susanne

              Kommentar


              • #8
                SusanneW, zu 1 und 3: kein Wunder, denn wie gesagt $kt_schalter ist ein Array, du kannst nicht einfach so zuweisen oder verwenden. Überlege nochmals dein Konzept und formuliere um, so dass du anhand der POST-Variable mit dem Inhalt von dem Array $kt_schalter vergleichen kannst. Nicht einfach hirnlos irgendwas nehmen.

                Kommentar


                • #9
                  Hallo

                  Denk doch mal bitte daran das ich noch Anfängerin bin,
                  wenn ich wüste wie es geht würde ich doch hier nicht fragen.

                  ich hab sonstwas schon versucht, aber irgendwas mach ich falsch.
                  wenn ich zb. das mache:

                  PHP-Code:
                  foreach($kl_schalter as $link => $v)
                          {
                              
                          
                              echo 
                  '    <span><input type="submit" 
                                          name="'
                  .$link.'" value="'.$v['name'].'" />&nbsp;</span>';
                                      
                              echo 
                  '<br />';
                          } 
                  dann bekommt jeder Schalter ein namen, in meinem fall:
                  1, 11, 20.

                  wenn ich dann den Schalter mit:

                  PHP-Code:
                  if(isset($_POST[$link])) 
                  {
                      
                      echo
                  '
                      
                      zeig mal den link an: '
                  .$kl_schalter["$link"]['link'].'<br />
                      <br />'
                  .$link.'<br />
                      
                      '
                  ;    

                  abfrage
                  dann hab ich das prob, durch die schleife wird $link auf 20 gesetzt
                  und mit echo erhalte ich dann die Ausgaben:
                  zeig mal den link an: variablen/dateien.php

                  20

                  aber auch nur wenn ich auf den 3.Schalter klicke.
                  bei den ersten beiden erhalte ich keine Meldung.
                  Kann mir nicht jemand ne Lösung geben und diese etwas erklären?
                  So mach ich es, wenn ich ne Antwort weiß.

                  LG
                  Susanne

                  Kommentar


                  • #10
                    Hallo

                    Hab nun dank eines Freundes die Lösung für mein Problem gefunden.
                    Vieleicht kann es ja jemand gebrauchen.
                    Hier nun der code.
                    PHP-Code:
                    <?php
                    $kl_schalter 
                    = array(
                                
                    => array(
                                             
                    'name'         =>    'Banner',
                                            
                    'icon_style'=>     'hier kann man zb. style Eigenschafften
                                                             für den Input Button festlegen '
                    ,
                                            
                    'link'        =>    '../variablen/banner.php',
                                            ),
                                
                    11 => array(
                                             
                    'name'         =>     'Ordner ',
                                            
                    'icon_style'=>     'background-color: #FFCC99;
                                                             padding-left: 16px;
                                                             background-image: 
                                                             url(../grafiken/ordner/folder.gif);
                                                             background-repeat: no-repeat;
                                                             background-position: left center;    '
                    ,
                                            
                    'link'        =>    '../variablen/ordner.php',
                                             ),
                                
                    20 => array(
                                             
                    'name'         =>     'Dateien ',
                                            
                    'icon_style'=>     '',
                                            
                    'link'        =>    '../variablen/dateien.php',
                                             ),
                                        );

                    if(isset(
                    $_REQUEST['arr'])) 
                    {
                         
                    $inhalt $_POST['arr'];
                         
                    // hier wird abgefragt welcher Button gedrückt wurde, die dazugehöhrende
                         // Datei wird includet
                        
                    foreach($inhalt as $key => $val)
                        {
                            include 
                    $kl_schalter[$key]['link'];    
                        } 
                    }
                    // Ab hier kann man den code auch in eine andere Datei schreiben,
                    // dort wo man die Button haben möchte
                    echo'
                    <form action="inc_kategorien_links_test.php"                                                    
                                            method="post">
                        <span> Die ersten Bilderpfade in die Tabelle eintragen </span><br />
                        '
                    ;
                            foreach(
                    $kl_schalter as $link => $v)
                            {
                        echo 
                    '
                        <span><input style="'
                    .$v['icon_style'].'" type="submit" 
                            name="arr['
                    .$link.']" value="'.$v['name'].'" /></span><br />
                        '
                    ;
                            }    
                        echo
                    '
                    </form>
                        '
                    ;
                    ?>
                    Dank noch mal an meinen Freund Taps der mir wie immer sehr geholfen hat.
                    So langsam frag ich mich was mir das Forum hier bringt.
                    Is ne tolle Site hier, aber wenn jemand hilfe benötig ist er hier, meiner Meinung nach, verkehrt.
                    Besonders Anfängerinnen wie ich.
                    Wenn das Forum hier meine einzige Anlaustelle wär, hätt ich,
                    Websiten erstellen, php schon geschmissen.
                    Eigendlich lag ich mit meinen Anfangscode ganz gut, nen paar kleinigkeiten und es hätt geklappt.
                    Schade das von Euch keiner in der Laage war mir zu helfen.
                    Hoffe aber das ich mit meiner Meinung allein da steh.

                    LG
                    Susanne

                    Kommentar


                    • #11
                      Wenn du meinst, einen Privatsupport hier zu finden, dann geht woanders spielen. 24 Stunden und schon meckern Wenn du schnell haben willst dann bezahle für das was du haben willst, ansonstens bitte warten, denn es waren Feiertage, die helfenden User hier haben auch ein Privatleben, sie offern ihre Freizeit hier, um ihr Wissen zu teilen. Merke dir das zukünftig.

                      Kommentar

                      Lädt...
                      X