Avatar billede ceec Nybegynder
21. april 2006 - 10:31 Der er 15 kommentarer og
1 løsning

dynamisk $_POST

Hej eksperter

Jeg sidder og laver en lille stump kode hvor jeg skal opdatere min database udfra en række form komponenter. Disse afhænger af brugeren. Dvs. brugeren har selv mulighed for at variere hvor mange komponenter han ønsker at opdatere.

Derfor navn giver jeg min komponenter på denne måde tekst1, tekst2, tekst3.

Og til selve opdateringen laver jeg en løkke som kører udfra antal af komponenter.

Kan man lave sin $_POST variable dynamisk. Eks. $_Post['tekst"'.$i.'"']; hvor $i er lig med det tal i løkken man nu er igang med???

Kan ikke gennemskue hvordan man kan gøre det, håber i kan hjælpe.

-Ceec
Avatar billede michael_stim Ekspert
21. april 2006 - 10:39 #1
Kan du ikke bruge:
foreach($_POST as $value){
//kode
}
Avatar billede horsmark Nybegynder
21. april 2006 - 10:39 #2
yesyes side 1:

<form action="side2.php" method="POST">
<?
for ( $i = 1; $i<10 ;$i++ ){?>
    <input type="input" name="tekst<?=$i?>" value="">
<?}?>
</form>

side 2

<?
foreach($_POST as $key => $value){
    print "_POST[{$key}] => {$value}<br>";
}
?>
Avatar billede michael_stim Ekspert
21. april 2006 - 10:39 #3
Avatar billede ceec Nybegynder
21. april 2006 - 10:43 #4
Kigge lige på det....
Avatar billede ceec Nybegynder
21. april 2006 - 11:04 #5
Er ikke helt med på hvordan jeg gør det.

Eks. en bruger opretter 3 tekstafsnit (tekstfelter)
De vil så hedde: tekstafsnit1, tekstafsnit2, tekstafsnit3.

Det vil jo så give mig følgende: $_POST['tekstafsnit1'],$_POST['tekstafsnit2'],$_POST['tekstafsnit3'].

Kan ikke gennemskue hvordan jeg kan bruge foreach i denne sammenhæng. Kan i evt. pensle det lidt ud :)
Avatar billede horsmark Nybegynder
21. april 2006 - 11:12 #6
1. $_POST er et array med de forskellige inputfeltnavne og deres values fra forrige side
2. gennemløb $_POST arrayet for at se om der nogle postede inputs hvor deres navn starter med 'tekstafsnit'

giver det mining ?
Avatar billede ceec Nybegynder
21. april 2006 - 11:18 #7
Noget i denne stil:

foreach($_POST as tekstafsnit => $value) {
    kode;
}

???
Avatar billede horsmark Nybegynder
21. april 2006 - 11:26 #8
næsten du skal søge efter tekstafsnit i hver postkey således

foreach( $_POST as $sName => $sValue ){
  if( strpos($sName, "tekstafsnit ") !== false ){
    print "Post tekstafsnit input fundet - _POST[{$sName}] = {$sValue}<br>";
  }
}
Avatar billede horsmark Nybegynder
21. april 2006 - 11:27 #9
hov strpos($sName, "tekstafsnit ") skal være strpos($sName, "tekstafsnit") uden mellemrum til sidst
Avatar billede ceec Nybegynder
21. april 2006 - 11:43 #10
Hmm kan godt se at det tager lidt om sig. Havde været tusind gang nemmer hvis bare man kunne have gjort sådan her $_POST['tekstafsnit"'.$i.'"']

For jeg har 3 felter som alle dynamisk bliver opdateret, som jeg skal trække ud og indsætte i min database. Ovenstående virker....det bliver bare meget komplekst når man har 3 faktore at tage højde for.

Men jeg må jo se om det kan lade sig gøre.
Tak for hjælpen.
Avatar billede horsmark Nybegynder
21. april 2006 - 11:47 #11
sådan ?

for( $i=0;$i<10;$i++){
if( isset($_POST['tekstafsnit'.$i]) ) print "Post tekstafsnit input fundet - _POST[tekstafsnit{$i}] = {$sValue}<br>";
}
Avatar billede horsmark Nybegynder
21. april 2006 - 11:48 #12
tilrettet:
for( $i=0;$i<10;$i++){
if( isset($_POST['tekstafsnit'.$i]) ) print "Post tekstafsnit input fundet - _POST[tekstafsnit{$i}] = ".$_POST['tekstafsnit'.$i]."<br>";
}
Avatar billede ceec Nybegynder
21. april 2006 - 11:50 #13
Men kan du gøre sådan: $_POST['tekstafsnit'.$1]; ??????
Avatar billede ceec Nybegynder
21. april 2006 - 11:50 #14
rettelse: $_POST['tekstafsnit'.$i];
Avatar billede ceec Nybegynder
21. april 2006 - 11:55 #15
Det virker :) Men nu fik jeg da lært lidt omkring foreach()

Og det er jo aldrig tosset at lære noget nyt. Mange tak for hjælpen :)
Avatar billede horsmark Nybegynder
21. april 2006 - 11:58 #16
np og thx for poijnts ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester