wie kann ich 2 Variablenarrays in einer Schleife verarbeiten?
Knud Schröder
- php
0 Bio0 Slyh0 Jan Lehnardt
0 Carsten0 Knud
0 André Laugks
Hallo und Guten Morgen!
Ich hab folgende Eingabemaske mit irgendwann mal "beliebig" vielen Eingabefeldern,
die dann dynamisch aufgebaut werden.
<table border=0>
<tr><td> Personalnummer: <input type=text name="pnr[1]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[1]" size=5 maxlength=5></td><tr>
<tr><td> Personalnummer: <input type=text name="pnr[2]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[2]" size=5 maxlength=5></td><tr>
<tr><td> Personalnummer: <input type=text name="pnr[3]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[3]" size=5 maxlength=5></td><tr>
<tr><td> Personalnummer: <input type=text name="pnr[4]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[4]" size=5 maxlength=5></td><tr>
<tr><td> Personalnummer: <input type=text name="pnr[5]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[5]" size=5 maxlength=5></td><tr>
<tr><td> Personalnummer: <input type=text name="pnr[6]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[6]" size=5 maxlength=5></td><tr>
</table>
Jetzt möchte ich die eingegebenen Werte php-mäßig verarbeiten.
Hatte mir irgendwas vorgestellt wie (Testscript):
while((list($pnr_key, $pnr_value) = each($pnr)) AND (list($enr_key, $enr_value) = each($enr))){
echo "<hr>$pnr_key : $pnr_value , $enr_key : $enr_value<hr>";
}
Leider funktioniert's nicht. Angeblich wäre weder $pnr noch $enr ein Array.
Hat jemand eine Idee, wie ich's programmiertechnisch lösen könnte?
Grüße,
Knud
Sup!
<table border=0>
<tr><td> Personalnummer: <input type=text name="pnr[1]" size=4 maxlength=4></td>
<td> Artikelnummer: <input type=text name="enr[1]" size=5 maxlength=5></td><tr>
Vielleicht nutzt das Benennen der Eingabefelder im >>HTML-Code<< gar nix, und die Variablen heissen einfach pnr[1], pnr[2] etc?
Oder ist PHP so schlau und erkennt, daß das ein Array darstellen soll?
Anscheinend ja nicht.
Kann ich mir nicht auch so recht vorstellen, denn auch PHP muß die Werte vom Browser alle schoen einzeln bekommen, in jeweils eigenen Variablen, die halt pnr[1],pnr[2] heissen - falls das überhaupt erlaubt ist, Variablennamen mit [] zu machen.
Gruesse,
Bio
Hallo,
Kann ich mir nicht auch so recht vorstellen, denn auch PHP muß die Werte vom Browser alle schoen einzeln bekommen, in jeweils eigenen Variablen, die halt pnr[1],pnr[2] heissen - falls das überhaupt erlaubt ist, Variablennamen mit [] zu machen.
Es ist nicht erlaubt Bezeichner zu definieren, die [ oder ] enthalten.
Auszug aus </selfhtml/tchb.htm#a1>:
Jedes Eingabefeld muß einen internen Bezeichnernamen erhalten, und zwar mit
der Angabe name=. Der Name sollte nicht zu lang sein und darf keine Leerzeichen
und keine deutschen Umlaute enthalten. Verwenden Sie als Sonderzeichen
höchstens den Unterstrich "_". Setzen Sie den Namen in Anführungszeichen.
Gruß
Slyh
Hi,
Oder ist PHP so schlau und erkennt, daß das ein Array darstellen soll?
Anscheinend ja nicht.
Doch so schlau ist es. Da die Arrays indiziert sind, wuerde ich es hier mal mit einer FOR schleife probieren.
Jan
--
Hallo Knud,
Das, was du geschrieben hast ist richtig und funktioniert auch (der ge-Copey&Pasted-e Code läuft auf meinem System).
Der Fehler liegt also irgendwo im drumrum.
Gruss,
Carsten
Hallo Carsten,
Du hast tatsächlich recht gehabt!!!
Hab den Fehler gefunden (Hab doch dummerweise ne andere php-Datei aufgerufen).
Nee, nee, nee!
Aber immerhin, das Script war korrekt und so wie ich's mir gedacht hab!
Läuft tadellos! *stolz*
Danke für Deine Hilfe (und auch die anderen, logisch!!!)
Werd mich dann mal selbst für die Archivierung vorschlagen (sollte das eigentlich gehen?), anhand der
anderen Antworten, scheint's ja gar nicht so uninteressant zu sein.
Geht das eigentlich? Seine eigene Seite hundert mal aufrufen und sich selbst zur Archivierung
vorschlagen???
Grüße,
Knud
Hallo!
Ich hab folgende Eingabemaske mit irgendwann mal "beliebig" vielen Eingabefeldern,
die dann dynamisch aufgebaut werden.
Eine beliebige Anzahl an Variablen läßt sich am besten mit $HTTP_POST_VARS oder $HTTP_GET_VARS verarbeiten.
while(list($name, $value) = each($HTTP_POST_VARS))
{
echo "Name:" . $name . " - Value:" . $value . "<br>\n";
}
Leider funktioniert's nicht. Angeblich wäre weder $pnr noch $enr ein Array.
Hat jemand eine Idee, wie ich's programmiertechnisch lösen könnte?
Schaue mal bei der PHP-FAQ vorbei "Variablen und Formulare" http://www.koehntopp.de/php/faq-webvariablen.html
MfG, André Laugks