alle postvariablen in array
Daniel
- php
Hi,
ich habe folgendes problem. ich baue mit php eine seite dynamisch auf.
dadurch entsteht ein folgendem text equivalenter html code:
<tr>
<td><input name="datum_termin_17" value="27.05.2005" size="9" type="text"></td>
</tr>
<tr>
<td><input name="datum_termin_18" value="27.05.2005" size="9" type="text"></td>
</tr>
<tr>
<td><input name="datum_termin_27" value="27.05.2005" size="9" type="text"></td>
</tr>
also alle input felder haben den namen datum_termin_X und um das X
geht es mir, kann ich irgendwie alle post variablen durchgehn und
schaun ob der key den teilstring datum_termin_ hat? wenn ja wie? ich
glaub ich steh grad auf dem schlauch. ich weis das es eine funktion
für array's gibt welche mir einen key liefert und $_POST ist ja ein
array, oder seh ich das falsch? ich hab grad echt voll den hänger.
hoffe hab mein problem ausreichend geschildert. wenn nicht geh ich auf gegenfragen gerne ein.
MfG
hi,
also alle input felder haben den namen datum_termin_X und um das X
geht es mir, kann ich irgendwie alle post variablen durchgehn und
schaun ob der key den teilstring datum_termin_ hat? wenn ja wie? ich
glaub ich steh grad auf dem schlauch. ich weis das es eine funktion
für array's gibt welche mir einen key liefert
du könntest $_POST mit foreach durchlaufen, und mit stringfunktionen prüfen, ob der jeweilige key mit "datum_termin_" anfängt.
array_key_exists() könnte weiterhelfen, wenn du den eintrag zu einem bestimmten X suchst.
aber, irgendwie schöner wäre vielleicht, die inputfelder gleich mit name="datum_termin[X]" zu benennen.
dann bekommst du nämlich in $_POST['datum_termin'] ein unter-array mit den inhalten all jener felder, dass du bequem durchlaufen kannst.
tipp: ausprobieren und mit print_r($_POST) die struktur anschauen, wenn noch unklar.
gruß,
wahsaga
Hi,
wenn du den eintrag zu einem bestimmten X suchst.
ich suche sowohl alle werte zu X sowie den dazugehörigen eintrag.
aber, irgendwie schöner wäre vielleicht, die inputfelder gleich mit
name="datum_termin[X]" zu benennen. dann bekommst du nämlich in
$_POST['datum_termin'] ein unter-array mit den inhalten all jener
felder, dass du bequem durchlaufen kannst.
Oh ja, das wusste ich garnicht, ist echt praktisch.
tipp: ausprobieren und mit print_r($_POST) die struktur anschauen, wenn noch unklar.
nein ist klar, habs trotzdem gemacht um sicher zugehn obs funktioniert, und es funktioniert.
vielen dank an dich. die X-Werte hol ich mir jetzt so:
if(isset($_POST['datum_termin_']))
{
$array = $_POST['datum_termin_'];
$unterpunkte = count($array);
for($z=0; $z<=$unterpunkte; $z++)
{
if($z == 0)
{
$schluessel = key($array);
echo "<br>$schluessel<br>";
}
else
{
next($array);
$schluessel = key($array);
echo "<br>$schluessel<br>";
}
}
}// if(isset($_POST['datum_termin_']))
so geht das aber ich denke es gibt ne bessere lösung.
trotzdem schonmal und nochmal Vielen dank für deine hilfe.
MfG
if(isset($POST['datum_termin']))
{
$array = $POST['datum_termin'];
$unterpunkte = count($array);
for($z=0; $z<=$unterpunkte; $z++)
{
if($z == 0)
{
$schluessel = key($array);
echo "<br>$schluessel<br>";
}
else
{
next($array);
$schluessel = key($array);
echo "<br>$schluessel<br>";
}
}
}// if(isset($POST['datum_termin']))
Hi,
warum so umständlich?
if(isset($\_POST['datum\_termin']))
{
foreach($\_POST['datum\_termin'] as $schluessel=>$wert)
{
print $schluessel." ".$wert;
}//Ende forach
}//Ende if
Dann hast Du alle Array-Element durchlaufen, egal wie viele....
Grüße
<td><input name="datum_termin_27" value="27.05.2005" size="9" type="text"></td>
</tr>
also alle input felder haben den namen datum_termin_X und um das X
geht es mir, kann ich irgendwie alle post variablen durchgehn und
schaun ob der key den teilstring datum_termin_ hat? wenn ja wie? ich
glaub ich steh grad auf dem schlauch. ich weis das es eine funktion
für array's gibt welche mir einen key liefert und $_POST ist ja ein
array, oder seh ich das falsch? ich hab grad echt voll den hänger.
schreibe besser:
<input name="datum_termin[27]" value="27.05.2005"
dann legt der php interpreter ein array an. über die indizees kannst du dann darauf zugreifen. mqcht sich auch in ner schleife besser.
Hi,
<input name="datum_termin_27" value="27.05.2005" size="9" type="text">
schreibe besser:
<input name="datum_termin[27]" value="27.05.2005"
das obere schreibt ja mein php-script und nicht ich. ich hol mir die
Datums-Daten aus ner DB und die haben eine id. damit ich auf die ID
zugreifen kann liess ich die mit einem
echo "<input name='datum_termin_$id'>";
hineinschreiben. aufgrund von wahsgas post der quasi das gleiche gesagt
hat wie du hab ich das so erweitert.
echo "<input name='datum_termin_[$id]'>";
also lass ich es von php jetzt so schreiben das quasi das rauskommt wie
du es auch gemeint hast.
auch dir ein dank.
MfG