Avatar billede lsskaarup Nybegynder
15. september 2010 - 16:05 Der er 11 kommentarer og
1 løsning

Fange text felt på id i stedet for navn

Kan man fange f.eks. et text felt på id'et i stedet for på navnet.

Altså noget lignede $_POST[id] i stedet for $_POST[navn]?
Avatar billede aners Nybegynder
15. september 2010 - 17:11 #1
Nej.

Hvorfor vil du også det?
Avatar billede lsskaarup Nybegynder
15. september 2010 - 23:36 #2
Fordi jeg har en række forskellige text fields i arrays, som jeg skal manipulere med indholdet i inden det gemmes idatabasen. Det er indtastningsfelter til dato, som jo skal ændres for at kunne bliver gemt rigtigt.

Jeg kan nemt nok fange dem og manipulere med dem, men den nøjagtig samme kode, skal bare gentages en hel masse gange, et for hvert fald, for at jeg får tilpasset dem alle.

Jeg har derfor hardcoret feltnavnede ind i et array, som jeg samtidig bruger både som tæller og til at fange felterne med.

Det havde bare været mere elegant, hvis jeg kunne fange dem, ud fra f.eks. et fælles id, der så kunne være dato e.l. På den måde, skal jeg ikke huske at tilføje et eventuelt nyt felt i arrayet i procesdelen. Derfor tænkte jeg om det kunne lade sig gøre via id, eller måske noget andet.

Jeg kan lige paste kode i morgen, så er detnok nemmere at forstå. Det drejer sig om ca. 5 linjer, så det er ikke meget.
Avatar billede lsskaarup Nybegynder
16. september 2010 - 08:07 #3
Min kode er som følger:
       
$feltnavne = array("e3", "e5", "e9", "e11", "e12", "e14", "e18", "e20", "e21", "e23", "e25");
for ($i=0;$i<count($feltnavne);$i++) {
    $tæller =0;
    foreach($_POST[$feltnavne[$i]] as $telf => $idræv) {
        $_POST[$feltnavne[$i]][$tæller] = strtosqldate($idræv);
        $tæller++;
    }
}

Hvis ikke jeg lavede det første array, skulle er reelt lave den samme kode, for hvert felt. Lidt tåbeligt.

Den løsning fungerer fint, men bliver der tilføjet et felt, skal jeg huske at tilføje dets navn til feltnavne arrayet.

Det var det, jeg gerne ville gøre på en smartere måde, f.eks. hvis man kunne fange på id e.l. Jeg kan ikke bare fange alle felter, da der også ligger mange andre felter, som jeg ikke skal gøre noget ved.
Avatar billede majbom Novice
16. september 2010 - 09:05 #4
kunne du ikke lave name til et array og bare løbe det igennem serverside? så slipper du for hardcodet arrays der skal rettes hvis der skal tilføjes eller fjernes et felt :)

<input type="text" name="dato[]">
Avatar billede majbom Novice
10. november 2010 - 14:17 #5
lsskaarup?
Avatar billede lsskaarup Nybegynder
11. november 2010 - 11:57 #6
Hov, undskyld jeg havde slet ikke set, dit forrige spørgsmål.

Felterne er faktisk bygget op i et array, for jeg har flere linjer med de enkelte felter hedder det samme. For at kunne gemme og fange data, ligger de i et array f.eks. <input type="text" class="inputextrasmall" name="e3[]" style="width:60px;" value="<?php echo sqltoalmdatetom($foo['e3']); ?>">

Mit problem er at det kun er ca. 20% af felterne som jeg skal have fat i til denne kode stump, så jeg kan ikke bare fange alle felter, da jeg så får alt for meget data, jeg efterfølgende skal slette i.
Avatar billede majbom Novice
11. november 2010 - 12:14 #7
kan du ikke lave navnet om, så du kan sortere på det? f.eks. dem du skal bruge har en _ efter navnet, samt et ord eller noget, så der er forskel?
Avatar billede majbom Novice
11. november 2010 - 12:14 #8
det kunne jo passende være id'et efter _ så har du næsten hvad du spørger om - så er det bare at splitte strengen ved _ og bruge den sidste del :)
Avatar billede lsskaarup Nybegynder
11. november 2010 - 19:30 #9
Jo, det kunne måske være en løsning. Nu kan jeg selvfølgelig ikke huske kode i hovedet, og felterne bruges andet steds til at trække data ud fra. Men har det ingen indflydelse på den nuværende funktionalitet, så er det absolut en god mulighed.

Synes bare det have været mere elegant, at kunne kalde rent på id f.eks.
Avatar billede lsskaarup Nybegynder
16. november 2010 - 22:36 #10
Smider du et svar
Avatar billede majbom Novice
22. november 2010 - 10:20 #11
jeps :)
Avatar billede majbom Novice
22. november 2010 - 10:39 #12
tfp :)
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