form -> action="<?php echo $_SERVER['PHP_SELF']; ?>

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

  • form -> action="<?php echo $_SERVER['PHP_SELF']; ?>

    WICHTIG:

    Zitat von combie Beitrag anzeigen
    PHP-Code:
    <form name=select action="<?php echo $_SERVER['PHP_SELF']; ?>">
    Jetzt lass das doch endlich mal weg!!

    Jeder Anfänger, welcher diesen Thread sieht, wird verführt PHP_SELF einzusetzen.
    Bitte lass das.....!


    Machs doch so, das ist genauso gut:
    HTML-Code:
    <form name=select action="">
    Einfach leer lassen. Sollte in deinem Fall dicke reichen.
    --------------------------------------------------

    Hoffe ich bin hier richtig

    Habe ein "kleines" Problem...

    habe einige Select-Felder welche mit DB Abfragen befüllt werden.
    Wenn ich nun ein Feld verändere, und meine Ausgabe per Button veränderen will geht dies zwar, das Feld ändert seinen Anzeigewert jedoch wieder auf den Wert, welcher als erstes von der DB ausgegebenen wird. Eigentlich klar (reload Seite)

    Wie bekomme ichs nun hin, dass, nachdem ich die Ausgabe aktualisiere, das Select Feld das Richtige anzeigt? Würde ja Value hernehmen, geht aber leider nicht, weil Value ja mit der DB Abfrage befüllt ist.

    (Hoffe das war einigermaßen verständlich :P)

    Würde mich über Hilfe freuen,

    mfg
    Zuletzt geändert von moepmann123; 05.07.2009, 22:08.

  • #2
    Zitat von moepmann123 Beitrag anzeigen
    (Hoffe das war einigermaßen verständlich :P)
    Kaum.
    Insb. was der Titel mit der eigentlichen Frage zu tun haben soll, kann ich nicht erkennen.
    Wie bekomme ichs nun hin, dass, nachdem ich die Ausgabe aktualisiere, das Select Feld das Richtige anzeigt?
    Ich kann nur raten, dass du das meinen könntest:
    http://de.selfhtml.org/html/formular..._vorselektiert
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ok, der Titel war vielleicht etwas schlecht gewählt :P

      Ich versuchs nochmal verständlich zu erklären.

      Ich habe ein Form in dem einige Select-Felder enthalten sind. Diese Felder werden durch Datenbankabfragen befüllt und sohin ist Value schon vorbelegt. Am Schluss dieses Forms habe ich einen Aktualisieren Button um die Ausgabe (hier werden die Daten der Select-Felder verwertet) neu auszugeben.

      Als Action für das Form habe ich <?php echo $_SERVER['PHP_SELF']; ?> verwendet, um die Ausgabe auf der selben Seite neu zu laden.

      Mein Problem ist nun, dass die Ausgabe perfekt funktioniert, ich will jedoch - nach dem die Seite neu geladen wurde - die Optionen die ich vorher gewählt habe, in den Select Feldern als "selected" haben.

      Vorselektiert habe ich versucht, funktioniert jedoch nicht da er mir - sofern ich selected in meinen <option>-Tag packe - immer den letzten Datensatz auswählt.

      Problem is ja iwi, dass er ja nachdem er die Seite neu ladet, auch die Select Felder neu mit den Datenbankabfragen befüllt.

      Hoffe das war etwas verständlicher

      Mfg
      Zuletzt geändert von moepmann123; 04.07.2009, 19:13.

      Kommentar


      • #4
        Zitat von moepmann123 Beitrag anzeigen
        Vorselektiert habe ich versucht, funktioniert jedoch nicht da er mir - sofern ich selected in meinen <option>-Tag packe - immer den letzten Datensatz auswählt.
        Tja, dann machst du's wohl falsch, denn genau so geht's.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Code:
          echo "<option value= ".$klasse2['id_klasse']." selected >".$klasse2['klasse']."</option>";
          so sieht der Code für das Select-Feld aus...Wenn ich jetzt eine Option auswähle, die Seite per Button neu lade und die ausgewählten Optionen übergebe, bringt mir das Select sehr wenig (falls es so hingehört) da er ja wieder einfach neu aus der DB ausliest.

          Würde mich freuen wenn du mir sagen würdest wie ichs machen könnte

          Mfg

          Kommentar


          • #6
            Zitat von moepmann123 Beitrag anzeigen
            so sieht der Code für das Select-Feld aus...
            Also selected in jeder Option. Na das ist doch wohl mal blödsinnig - merkst du doch hoffentlich selber ...?

            Wenn ich jetzt eine Option auswähle, die Seite per Button neu lade und die ausgewählten Optionen übergebe, bringt mir das Select sehr wenig (falls es so hingehört) da er ja wieder einfach neu aus der DB ausliest.
            Und dabei vergleichst du den übergebenen Wert mit den Werten die du ausgibst - und nur bei Gleichheit schreibst du dann das selected-Attribut mit rein.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Zitat von wahsaga Beitrag anzeigen
              Also selected in jeder Option. Na das ist doch wohl mal blödsinnig - merkst du doch hoffentlich selber ...?


              Und dabei vergleichst du den übergebenen Wert mit den Werten die du ausgibst - und nur bei Gleichheit schreibst du dann das selected-Attribut mit rein.
              das selected ist normal auch ned drin :P war nur zum testen.

              Werd das mal so probieren, mal schaun ob ichs hinbekomm :P

              mfg u danke

              Kommentar


              • #8
                Ich stehe etwas auf der Leitung

                Das ist mal generel mein Code um das Selectfeld zu befüllen:

                Code:
                     $klasse_norm ="SELECT * FROM t_klassen t;";
                   
                   $klasse = "SELECT * FROM t_stundenplan s INNER JOIN t_stundenzeiten st INNER JOIN t_klassen t
                    ON s.stunde = st.stunde AND s.klasse = t.klasse
                  WHERE s.lehrercode like '$lehrercode' AND '$uhrzeit' between st.von and st.bis AND s.tag like '$tag';";
                  
                  $ergebnis_klasse = mysql_query($klasse);
                   
                  $ergebnis_klasse_norm = mysql_query($klasse_norm);
                $num_rows = mysql_num_rows($ergebnis_klasse);
                   
                   if ($num_rows > 0) {
                   
                   while($klasse2 = mysql_fetch_assoc($ergebnis_klasse)) {
                                 
                
                              
                  echo "<option value= ".$klasse2['klasse']." >".$klasse2['klasse']."</option>";
                 
                  $schueler_kl = "".$klasse2['klasse']."";
                  
                  $f_kl = $_GET["sel_klasse"]; 
                 }
                }
                
                else {
                
                while($klasse3 = mysql_fetch_assoc($ergebnis_klasse_norm)) {
                                 
                
                              
                  echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>";
                 
                $schueler_kl = "".$klasse3['klasse']."";
                  $f_kl = $_GET["sel_klasse"]; 
                 }
                
                }
                ZZ überprüfe ich, ob ich Datensätze geliefert bekomme, wenn ja soll er den einen (kann in dem Fall nur einer sein) ausgeben. Wenn keine Datensätze gefunden werden, soll er alle Klassen ausgeben.

                Wie kann ich das so löse, dass wenn ein Datensatz gefunden wird, dieser selected ist, wenn keiner gefunden wird, die Liste ganz normal ausgegeben wird?

                Mfg

                Kommentar


                • #9
                  Benutz doch bitte die [PHP]-Tags, dann wird der Code für uns lesbarer.

                  Kommentar


                  • #10
                    Wie kann ich das so löse, dass wenn ein Datensatz gefunden wird, dieser selected ist, wenn keiner gefunden wird, die Liste ganz normal ausgegeben wird?
                    Na, die betreffende Zeile dürfte diese sein:
                    PHP-Code:
                    echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>"
                    Und dann ganz einfach:
                    PHP-Code:
                    echo "<option value= ".$klasse3['klasse']. (aktueller_datensatz == gefundener datensatz " selected=selected" "") . ">".$klasse3['klasse']."</option>"

                    Kommentar


                    • #11
                      Zitat von TobiaZ Beitrag anzeigen
                      Na, die betreffende Zeile dürfte diese sein:
                      PHP-Code:
                      echo "<option value= ".$klasse3['klasse'].">".$klasse3['klasse']."</option>"
                      Und dann ganz einfach:
                      PHP-Code:
                      echo "<option value= ".$klasse3['klasse']. (aktueller_datensatz == gefundener datensatz " selected=selected" "") . ">".$klasse3['klasse']."</option>"
                      nette sache funktioniert super...jetzt besteht nur noch das Problem, dass die ausgewählte Option nach dem Action von dem Form nicht gleichbleibt, sondern wieder auf den Ursprung wechselt.

                      Soll heißen:

                      Ich habe 2 Auswahlmöglichkeiten -> Möglichkeit 1 wird beim Aufrufen der Seite automatisch gewählt. Ich wechsle auf Option 2, lade die Seite mit <?php echo $_SERVER['PHP_SELF']; ?> neu -> die Option ist wieder auf 1, sollte aber - wenns nach mir ginge :P - auf 2 sein

                      Mfg und VIELEN Dank!

                      Kommentar


                      • #12
                        action="<?php echo $_SERVER['PHP_SELF']; ?> ist nicht gut wegen XSS

                        Kommentar


                        • #13
                          Zitat von Koala Beitrag anzeigen
                          action="<?php echo $_SERVER['PHP_SELF']; ?> ist nicht gut wegen XSS
                          dh ich werde es mit java oder dergleichen lösen müssen?

                          Kommentar


                          • #14
                            Warum sollte man Java in einem PHP Programm verwenden? Verwende lieber sichere Variablen, oder verzichte gleich darauf.

                            Dein Problem habe ich nicht verstanden, vielleicht erklärst du es nochmal?
                            Und lass uns dir nicht alles aus der Nase ziehen.

                            Kommentar


                            • #15
                              nochn versuch :P

                              Ich habe ein Form das so aussieht: (hier nur ein Select-Feld)

                              PHP-Code:
                              <form name=select action="<?php echo $_SERVER['PHP_SELF']; ?>">


                               <select style='width:50px;' class='box' name='lehrer'>


                              <!-- Angemeldten Lehrer waehlen //-->     
                              <?

                                $lehrer = "SELECT * FROM t_lehrer t;";  
                                $ergebnis_lehrer = mysql_query($lehrer);  
                                while($lehrer2 = mysql_fetch_assoc($ergebnis_lehrer)) {
                                
                                
                                echo "<option value= ".$lehrer2['lehrercode']. ($id_lehrer == $lehrer2['id_lehrer'] ? " selected=selected" : "") . ">".$lehrer2['lehrercode']."</option>";  
                                
                               
                                
                              }

                              ?>
                                    
                                    </select>


                              <input class='button' type='submit' value='Abrufen' />
                              </form>
                              $id_lehrer bekomme ich in diesem Fall aus der Seassion-Variable vom Login.

                              So, jetzt will ich im Select-Feld einen anderen Eintrag auswählen, dann auf Submit klicken und es so haben, dass nachdem die Seite durch das php_self neu aufgerufen wurde, im Select-Feld der vorher ausgewählte Wert selected ist. Zur Zeit wird ja einfach die DB Abfrage nochmal ausgeführt.

                              Mfg

                              Kommentar

                              Lädt...
                              X