agentxi
Goto Top

variabler DOLLAR POST

Guten Abend.

ich möchte mit einer schleife alle POST's auslesen

die schleife sieht ungefähr so aus:

While ($i < 10)
{
echo '<input name="bla'.$i'" />
}
Der Generierte Code ist sauber, so wie ich ihn haben möchte. Nun möchte ich diese Felder alle auswerten:
(Auch schleife)
$bla = $_POST["feldname.$id"];

Mein Problem ist das ich diesen "dynamischen" Post nicht hinbekomme.
möchte als ergebnis es so haben:

1. Durchlauf
$bla = $_POST["feldname1"];

2. Durchlauf
$bla = $_POST["feldname2"];

...

Denke das ist schnell beantwortet face-wink

Content-Key: 46877

Url: https://administrator.de/contentid/46877

Printed on: April 19, 2024 at 10:04 o'clock

Member: Dani
Dani Dec 15, 2006 at 23:07:18 (UTC)
Goto Top
G' Abend,
probier es mal so:
.....
echo "<input name='bla.".$i."'>";  
....

Gruß
Dani
Member: Guenni
Guenni Dec 17, 2006 at 14:40:29 (UTC)
Goto Top
@agentxi

Hi,

wenn du bestimmte Daten eines Formulars abfragen willst,
z.B. die Felder, die nur eine Adresse beschreiben, kannst du
diese Felder gruppieren.

<form action="test.php" method="post">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="submit" value="Anzeigen" name="cmd" />  
</form>

Das sind 4 Textfelder, die zwar alle den gleichen Namen haben,
durch die eckigen Klammern "sieht" PHP diesen Variablennamen
als Array an.

Das sähe als einfache Variante z.B. so aus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?
$i=0;
while($i<count($adresse)){
 $bla[$i]=$adresse[$i];
 $i++;
}
for($i=0;$i<count($bla);$i++){
  if(strlen($bla[$i])>0){
 echo $bla[$i]."  
";  
 }
}
?>
<form action="test.php" method="post">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="text" name="adresse">  
<input type="submit" value="Anzeigen" name="cmd" />  
</form>
</body>
</html>

Problem an der Sache ist, dass auch Leerzeichen Zeichen sind. Deshalb:

for($i=0;$i<count($bla);$i++){
  if(strlen($bla[$i])>0){  //Prüfen, ob Stringlänge größer 0
 echo $bla[$i]."  
";  
 }
}

Gibt jemand nun ein Leerzeichen ein, so wird das Textfeld trotzdem
ausgewertet, obwohl es ja keine sinnvollen Daten enthält.

Wenn du damit nicht zurechtkommst, wirst du wohl das Textfeld mit
einem regulären Ausdruck auf gültige Zeichen prüfen müssen.

Grüße
Günni
Member: agentxi
agentxi Jul 05, 2007 at 11:05:12 (UTC)
Goto Top
Ich habe etwas geschummelt *g*

while($i>10)
{ echo '<input type="hidden" name="data'.$i.'" />';
$i++;}

und genauso lese ich es dann über post wieder aus. face-wink
Member: masterG
masterG Aug 21, 2007 at 09:57:39 (UTC)
Goto Top
Ich schließe diesen Thread da die Antowrt gefunden wurde und daher keine weiteren antworten nötig sind.

masterG
(Moderator)