[Variablen] Funktion in Variable speichern und darauf zugreifen

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

  • [Variablen] Funktion in Variable speichern und darauf zugreifen

    Hallo zusammen,

    eine Frage, ob mein Gedankengang überhaupt funktioniert.

    Ich erstelle für ein Formular eine Select-Liste aus einer Kundentabelle. Funktioniert auch ohne Probleme mit folgendem Code.

    PHP-Code:
    echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" class=\"formular\">\n";
    echo 
    "    <label for=\"kunde\">Kunde</label>\n";
    echo 
    "    <select name=\"kunden_id\" id=\"kunde\">\n";
    echo 
    "        <option value=\"0\">--- Kunden ausw&auml;hlen ---</option>\n";
                        
    // Auswahlliste "Kunde" erstellen
                        
    $result mysql_query("SELECT concat(name, ', ', vorname, ' - ', ort)
                                         AS Kunde, kunden_id FROM kunden
                                         ORDER BY name ASC, vorname ASC;"
    );
                        while(
    $row mysql_fetch_assoc($result)) {
                            echo 
    "<option value=\"".$row['kunden_id']."\">".utf8_encode($row['Kunde'])."</option>\n";
                         }
    echo 
    "    </select>";
    ..........
    echo 
    "</form>"
    Jetzt möchte ich aber gerne den Code bisschen aufgeräumter darstellen, also auf "echo ..." verzichten und lieber mit "echo <<<END ... END;" arbeiten. Kann ich also die die Funktionen, die ich brauche um die Select-Listen zu erstellen, in eine Variable speichern (z. B. $kunde_nr, $kunde_name), um mit folgenden Code weiterarbeiten zu können?

    PHP-Code:
    echo <<<END
    <form action"$_SERVER[PHP_SELF]" method="post" class="formular">
        <label for="kunde">Kunde</label>
        <select name="kunden_id" id="kunde">
            <option value="0">--- Kunde ausw&auml;hlen ---</option>
            <option value="
    $kunde_nr">$kunde_name</option>
        </select>
    ..........
    </form>
    END; 
    Oder geht das grundsätzlich gar nicht und ich brauche darüber nicht mehr nachzugrübeln? Schon mal Danke für eure Hilfe.

  • #2
    warum sollte das nicht gehen?

    und was ist am echo nicht 'aufgeräumt'?

    und was hat das jetzt mit einer fkt zu tun?

    PHP-Code:
    echo '<form action"'.$_SERVER['PHP_SELF'].'" method="post" class="formular">
        <label for="kunde">Kunde</label>
        <select name="kunden_id" id="kunde">
            <option value="0">--- Kunde ausw&auml;hlen ---</option>
            <option value="'
    .$kunde_nr.'">'.$kunde_name.'</option>
        </select>
    ..........
    </form>'

    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Re: [Variablen] Funktion in Variable speichern und darauf zugreifen

      wer sollte dich hindern wollen, in deiner while-schleife statt mit echo die daten auszugeben, diese z.b. in eine string-variable zu packen, die dann erst später ausgegeben wird ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        @Abraxax
        und was ist am echo nicht 'aufgeräumt'?
        Nun ja, ich hab mich vielleicht bisschen unverständlich ausgedrückt. Es stört mich nicht wirklich, den ersten Code per "echo" auszugeben. Lieber wäre es mir, die "while"-Schleife in eine Variable zu speichern und diese auszugeben. Damit das nicht unbedingt in der Formularerstellung steht. Ok, ist vielleicht bisschen Erbsenzählerei

        und was hat das jetzt mit einer fkt zu tun?
        Das es nichts weiter mit einer Funktion zu tun hat, ist schon klar. Bloß mir war kein besserer Thread-Tittel eingefallen Sorry, dafür.

        @wahsaga

        Ich habe folgendes schon probiert, was aber wahrscheinlich verkehrt ist:

        PHP-Code:
        while($row mysql_fetch_assoc($result)) {
            
        $kunde_nr $row['kunden_id'];
            
        $kunde_name utf8_encode($row['Kunde']);

        Wenn ich dann auf die Variablen $kunde_nr und $kunde_name zugreife, wird in der Select-Liste nur der letzte Datensatz, und nicht alle vorhandenen, angezeigt.

        Kommentar


        • #5
          Original geschrieben von RainbowSailorZ
          Wenn ich dann auf die Variablen $kunde_nr und $kunde_name zugreife, wird in der Select-Liste nur der letzte Datensatz, und nicht alle vorhandenen, angezeigt.
          gut erkannt. schliesslich überschreibst du die daten der beiden vars ja immer mit jedem durchlauf.

          du solltest die daten mal ausgeben, bevor der nächste durchlauf kommt.

          PHP-Code:
          echo '<select name="..." ...>';
          while(
          $row mysql_fetch_assoc($result))
          {
              
          $kunde_nr $row['kunden_id'];
              
          $kunde_name utf8_encode($row['Kunde']);
              echo 
          '<option value="'.$kunde_nr.'">'.$kunde_name.'</option>';
          }
          echo 
          '</select>'
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Hmm, na ok. Dann werde ich die Select-Listen weiterhin so erstellen, wie ich es bisher hatte (siehe ersten Code). Wäre halt schön gewesen, wenn die "while"-Anweisung in einer Variable stehen würde und dann per Aufruf dieser Variablen die Select-Listen erstellt werden. Naja, ist nicht so wild

            Trotzdem danke

            Kommentar


            • #7
              du kannst es auch mit einer var machen.... auch kein problem.

              PHP-Code:
              $option_data '';
              while(
              $row mysql_fetch_assoc($result))
              {
                  
              $kunde_nr $row['kunden_id'];
                  
              $kunde_name utf8_encode($row['Kunde']);
                  
              $option_data.= '<option value="'.$kunde_nr.'">'.$kunde_name.'</option>';
              }
              echo 
              '<select name="..." ...>';
              echo 
              $option_data;
              echo 
              '</select>'
              aber das wusstest du ja selber. oder?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Genau das ist es ...

                Uiii, so funktioniert das also!? Das wusste ich bisher leider noch nicht. Aber das ist genau das, was ich gesucht hatte.



                Macht's gut, bis zur nächsten Frage

                Kommentar


                • #9
                  öhm. und sowas weisst du nicht?

                  schaue dir noch einmal die grundlagen an.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Naja, ich hab mir schon das eine oder andere Tutorial angeschaut und durchgearbeitet. Aber irgendwann will man auch was eigenes probieren und dann kommt man als Anfänger mit solchen "pillepalle" Fragen ins Forum

                    Ok, ich mach mal weiter, damit ich groß und stark werde und mit erwachsenen Fragen aufwarten kann

                    Und nochmal Danke

                    Kommentar


                    • #11
                      aber auch in deinen büchern sollte gestanden haben, wie man string-variablen erstellt und mit inhalt füllt. oder?

                      aber viel spass noch ....
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar

                      Lädt...
                      X