drop down menu ... sortierung und post

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

  • drop down menu ... sortierung und post

    hallo zusammen,

    habe ein codeschnipsel und der funktioniert leider nicht.
    ich möchte einen kleinen file explorer machen, der alle files in einem verzeichnis auflistet und bei auswahl dann eine entsprechende url aufruft.
    so soll das dann funktionieren: modify.php?url=$file

    allerdings hab ich keine ahnung wie die sortierung funktioniert und der post funktioniert auch nicht ...

    jemand ne idee? wäre super.

    PHP-Code:
    <hr>
    <p align="center"><b><font color="white">File X-plorer</font></b><? 
        echo "<form>"; 
        echo "<select name='fileedit'>"; 
    //    $file = array ();
        $dirpath = "../contentTest"; 
        $dh = opendir($dirpath); 
           while (false !== ($file = readdir($dh))) { 
              if (!is_dir("$dirpath/$file")) { 
    //       sort ($file);
               echo "<option value='$file'>" . htmlspecialchars ($file) . '</option>'; 
       } 

         closedir($dh);  

    echo "</select>"; 
    echo "</form>";
    $option = $_POST['fileedit'] 
    ?>
    </p>

    <p align="center">
    <input type="button" name="fileedit" value="Edit" onClick="document.location='modify.php?url=<? echo $option; ?>'">
    </p>
    <br>
    Zuletzt geändert von SiL3NC3; 10.09.2005, 13:02.

  • #2
    Re: drop down menu ... sortierung und post

    Original geschrieben von SiL3NC3
    allerdings hab ich keine ahnung wie die sortierung funktioniert
    datein erst in ein array einlesen (in der while-schleife in ein solches einfügen), dann sortieren lassen, und anschließend in einer weiteren schleife über das sortierte array (foreach) die options erzeugen.
    und der post funktioniert auch nicht ...
    nun ja, echo "<form>" ist für ein funktionierendes formular auch ein bisschen wenig.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ich schnalls nich ...

      Kommentar


      • #4
        schau dir die beispiele an.

        1. evtl. glob()
        2. sort()
        3. for / foreach + echo

        das ganze mal grob:
        Code:
        $arrDateien = dateien_einlesen_aus("pfad/zum/ordner");
        
        sortiere ($arrDateien);
        
        schleife_ueber($arrDateien)
        {
           ausgabe $arrDateien[aktuelles_element];
        }

        Kommentar


        • #5
          sorry, bin anfänger ... hab zwar nen grundkurs php, aber irgendwie will mir das mit dem array nicht rein ...

          die infos auf php.net sind wohl eher was für fortgeschrittene ...
          mir leider etwas zu wenig ...

          Kommentar


          • #6
            wie wär's mit einer konkreten problembeschreibung?

            Kommentar


            • #7
              okay.

              ANFORDERUNG:

              - files in einem verzeichnis auslesen [./contentTest]
              - sortiert als dropdown menu anzeigen lassen
              - bei auswahl und post, sollte dann eine url aufgerufen werden [modify.php?url=%ausgewähltes file%]

              das is alles ... ich bin einfach nicht fit genug im php ... :|

              Kommentar


              • #8
                die anforderung ist schon klar. unklar ist, an welcher stelle du nicht weiterkommst. die beispiele auf php.net sind sehr anschaulich. "auf die schnelle" wird's eh nicht funktionieren, also lass dir zeit und lies dir alles durch.

                Kommentar


                • #9
                  da steht nur:

                  Description
                  array glob ( string pattern [, int flags] )


                  The glob() function searches for all the pathnames matching pattern according to the rules used by the libc glob() function, which is similar to the rules used by common shells. No tilde expansion or parameter substitution is done.

                  Returns an array containing the matched files/directories or FALSE on error.

                  Valid flags:


                  GLOB_MARK - Adds a slash to each item returned

                  GLOB_NOSORT - Return files as they appear in the directory (no sorting)

                  GLOB_NOCHECK - Return the search pattern if no files matching it were found

                  GLOB_NOESCAPE - Backslashes do not quote metacharacters

                  GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'

                  GLOB_ONLYDIR - Return only directory entries which match the pattern

                  Anmerkung: Before PHP 4.3.3 GLOB_ONLYDIR was not available on Windows and other systems not using the GNU C library.

                  GLOB_ERR - Stop on read errors (like unreadable directories), by default errors are ignored

                  Anmerkung: GLOB_ERR was added in PHP 5.1



                  damit kann ich nix anfangen ...

                  Kommentar


                  • #10
                    Original geschrieben von SiL3NC3
                    da steht nur:
                    nein, da steht auch ein beispiel, an hand dessen man die funktionsweise nachvollziehen kann.

                    themen wie umgang mit arrays etc. sind grundlagenwissen - also lies dir die entsprechenden kapitel im manual durch.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      PHP-Code:
                      <hr>
                      <p align="center"><b><font color="white">File X-plorer</font></b> 
                      <?php
                          
                      echo "<form>"
                          echo 
                      "<select name='choosed'>";
                         
                      $files=glob("./contentTest/*");
                         
                      sort($files);
                         foreach(
                      $files as $filename){
                             
                      $filename=ltrim($filename"./contentTest/");
                             echo 
                      "<option value='$filename'>$filename</option>";
                         }

                      ?>

                      </p>

                      <p align="center">
                      <input type="button" name="choosed" value="Edit" onClick="document.location='modify.php?url=<? echo $filename; ?>'">
                      </p>
                      <br>

                      soweit funktioniert das jetzt auch mit der sortierung.

                      jetzt noch das problem, dass beim POST die $url variable vorher nicht mit der ausgewählten datei "gefüttert" wird ...

                      wo ist der denkfehler?

                      Kommentar


                      • #12
                        ich sehe hier kein $url.

                        Kommentar


                        • #13
                          sorry $filename.

                          wenn ich auf edit drücke, wird immer die URL: "modify.php?url=index.php" aufgerufen, egal was ausgewählt ist.

                          ich muss noch den ausgewählten dateinamen irgendwie übergeben ...

                          nur wie?

                          Kommentar


                          • #14
                            indem du statt js erst mal eine normale <form> mit einem normalen submit-button bastelst.

                            Kommentar


                            • #15
                              Original geschrieben von SiL3NC3
                              jetzt noch das problem, dass beim POST die $url variable vorher nicht mit der ausgewählten datei "gefüttert" wird ...

                              wo ist der denkfehler?
                              teilweise darin, dass du nach der schleife den letzten wert in deiner onclick-funktion ausgibst - also ist es immer der selbe, egal welchen der user auswählt.

                              mach dir klar, dass PHP serverseitig abläuft - eine auswahl durch den user geschieht aber natürlich immer clientseitig.

                              und zum anderen darin, dass du für so etwas simple überhaupt javascript einsetzt - ein formular in reinem HTML könnte das gleiche erledigen, ganz ohne einsatz von javascript.
                              aber das setzt natürlich voraus, dass man sich erst mal ein wenig mit HTML-grundlagen beschäftigt, bevor man sich auf PHP stürzt ...
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X