Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[Variablen] Funktion in Variable speichern und darauf zugreifen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[Variablen] Funktion in Variable speichern und darauf zugreifen


 
RainbowSailorZ
24-10-2003, 18:23 
 
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.


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?


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.

 
Abraxax
24-10-2003, 18:30 
 
warum sollte das nicht gehen?

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

und was hat das jetzt mit einer fkt zu tun?

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>';

 
wahsaga
24-10-2003, 18:34 
 
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 ...?

 
RainbowSailorZ
24-10-2003, 18:52 
 
@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:


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.

 
Abraxax
24-10-2003, 20:21 
 
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.

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>';

 
RainbowSailorZ
24-10-2003, 21:50 
 
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 :)

 
Abraxax
24-10-2003, 22:00 
 
du kannst es auch mit einer var machen.... auch kein problem.

$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?

 
RainbowSailorZ
25-10-2003, 14:49 
 
Uiii, so funktioniert das also!? Das wusste ich bisher leider noch nicht. Aber das ist genau das, was ich gesucht hatte.

:danke:

Macht's gut, bis zur nächsten Frage ;)

 
Abraxax
25-10-2003, 17:34 
 
öhm. und sowas weisst du nicht? :goth:

schaue dir noch einmal die grundlagen an. ;)

 
RainbowSailorZ
25-10-2003, 17:44 
 
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 :D

Und nochmal Danke

 
Abraxax
25-10-2003, 17:49 
 
aber auch in deinen büchern sollte gestanden haben, wie man string-variablen erstellt und mit inhalt füllt. oder? :D

aber viel spass noch .... ;)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:58 Uhr.