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-ID: 46877

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Dani
Dani 16.12.2006 um 00:07:18 Uhr
Goto Top
G' Abend,
probier es mal so:
.....
echo "<input name='bla.".$i."'>";  
....

Gruß
Dani
Guenni
Guenni 17.12.2006 um 15:40:29 Uhr
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
agentxi
agentxi 05.07.2007 um 13:05:12 Uhr
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
masterG
masterG 21.08.2007 um 11:57:39 Uhr
Goto Top
Ich schließe diesen Thread da die Antowrt gefunden wurde und daher keine weiteren antworten nötig sind.

masterG
(Moderator)