Zwei Werte pro INPUT-Feld möglich ?
Kalle
- php
0 romy0 Kalle0 dude0 romy
0 Thomas Schmieder0 romy
Hallo,
aus einer MySQL-Tabelle stelle ich variabel eine Weinliste zusammen, pro Position kann man die Flaschenzahl eingeben.
In PHP möchte ich nun in einer Schleife die Felder durchgehen und für jede eingegebene Menge die Bestellnummer erkennen. Ich brauche also Bestell-Nr. UND Menge. Wie geht das ?
HTM-Datei:
<FORM action='mailer.php' method=post>
...
<INPUT TYPE='text' NAME='w001_19' maxlength=3 size=3>
<INPUT TYPE='text' NAME='w001_20' maxlength=3 size=3>
Datei mailer.php:
if ( $w001_19 ) { ... }
if ( $w001_20 ) { ... }
Bestellnummern fest programmiert - geht natürlich nicht !!!
Danke im Voraus, Kalle
Hallo,
hi
du hast doch den Finger schon auf der Wunde!
generiere den Namen des Eingabefeldes für die Anzahl variabel
d.h.
while(du datensätze hast){
echo "<input type="text" name="".$datenbank_id."">";
}
und dann kannst du auch abfragen.
foreach($_POST as $key = $value){
if($value != 0) {
// was weiss ich, speicherst du halt in ein array
$a[$key] = $value;
}
}
dann kannst du ne datenbankupdate oder anfrage realisieren indem du ne scheife
nochmals durchlaufenn lässt, kannst es natürlcih auch gleich machen in der foreach()
so in etwa
foreach($a as $key = $value) {
$selectstring = "select * from blabla where id=$key and menge=$value";
}
so oder so
bis denne
romy
Danke,
muss ich erst noch in Ruhe ausprobieren, habe ich auf Anhieb nicht verstanden.
Kalle.
hallo,
weiß jemand wie ich mehrere werte aus > select (multiple) < übermittlen kann die vorher selektiert wurden.
mfg
siggi
Hallo dude,
weiß jemand wie ich mehrere werte aus > select (multiple) < übermittlen kann die vorher selektiert wurden.
guck mal hier und in den Nachfolgepostings
[pref:t=31294&m=169241]
es sind in diesem und auch in einigen Threads weiter höher glaube ich diese ganze Problematik abgehandelt worden
ciao
romy
Hallo romy,
foreach($_POST as $key = $value){
if($value != 0) {
// was weiss ich, speicherst du halt in ein array
geht das denn?
$a[$key] = $value;
}
}
Wie kann man denn in foreach() ein Array erzeugen lassen, das hinterher noch zur Verfügung steht. Bei meiner PHP4.0.4 funktioniert das nicht zuverlässig, trotz tricksen.
Tom
Hallo Thomas,
foreach($_POST as $key = $value){
if($value != 0) {
// was weiss ich, speicherst du halt in ein array
geht das denn?
gute Frage, habe noch keine Probleme damit gehabt! Mir erschliesst sich jetzt gerade auch nicht gleich warum es nicht gehen sollte? Einzige Anmerkung, ich würde es vorher iniziieren a la -> $a = new array();
$a[$key] = $value;
}
}
Wie kann man denn in foreach() ein Array erzeugen lassen, das hinterher noch zur Verfügung steht. Bei meiner PHP4.0.4 funktioniert das nicht zuverlässig, trotz tricksen.
Ich benutze dieses Konstrukt in meinen Apps sehr häufig und es würde mich echt interessieren ob es da Probleme gibt, da es zu blöden Fehlern kommen kann, wenn das nicht funktioniert.
Ich werfe nämlich alle Post und Get-Daten die auf bestimmte Scripte kommen immer in ein gemeinsames array was dann als session gespeichert wird und gewisse Daten auch über 2 requests zu erhalten.
Wie könnte man das denn rausbekommen?
Ciao
romy
Hi romy,
bei der 4.0.4 arbeitet foreach() mit einer Art Kapselung, wie es die "normalen" Funktionen auch tun. Wenn also in foreach() ein Array definiert und belegt wird, dann geht es verloren. Wenn in foreach() ein Array als global definiert wird, dann wird das ja in jedem Durchgang wiederholt. Leider ist das Array erst nach der ersten Belegung vorhanden. Das bedeutet dann, dass der erste Wert verloren geht.
Wenn man das Array bereits außerhalb der foreach()-Schleife mit einem Wert belegt, also erzeugt hat, dann funktioniert auch das global innerhalb von foreach() vernünftig. Vielleicht hilft es auch, das Array außerhalb von foreach() zu deklarieren mit $feld = array();
Nur diese Vorgehensweise widerspricht der impliziten Variablendeklaration von PHP und ware dann nur als Workaraiund für eine äußerst schlampige Systemprogrammierung zu verstehen. Mich interessiert deshalb, ob das Problem in neueren Versionen behoben wurde.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Thomas
bei der 4.0.4 arbeitet foreach() mit einer Art Kapselung, wie es die "normalen" Funktionen auch tun. Wenn also in foreach() ein Array definiert und belegt wird, dann geht es verloren.
...
Nur diese Vorgehensweise widerspricht der impliziten Variablendeklaration von PHP und ware dann nur als Workaraiund für eine äußerst schlampige Systemprogrammierung zu verstehen. Mich interessiert deshalb, ob das Problem in neueren Versionen behoben wurde.
PHP 4.2.2 weist dieses Verhalten nicht auf. Variablen, die innerhalb von foreach definiert werden, sind auch ausserhalb von foreach() (im gleichen Kontext) vorhanden.
Gruss,
Vinzenz
Hallo Thomas
PHP 4.2.2 weist dieses Verhalten nicht auf. Variablen, die innerhalb von foreach definiert werden, sind auch ausserhalb von foreach() (im gleichen Kontext) vorhanden.
das gilt auch für die Version 4.1.0
dieses beispiel funktioniert wunderbar:
<?php
foreach($_SERVER as $key => $value) {
$a[$key] = $value;
}
foreach($a as $key => $value){
echo $key.": ".$value."<br>";
}
?>
$a wurde erst in der ersten foreach-Schleife erzeigt und besteht auch nachfolgend.
Ich hoffe, dass so ein Beispiel allgemeingültig ist?
oder wie kann man das sonst noch prüfen?
ciao
romy (die gerade Plätzchen bäckt und sich wie ein kleines Kind auf die Deko, vorallendingen die aus Schokolade freut ;) )
frohe weihnachtliche Stimmung