19. februar 2004 - 19:43Der er
17 kommentarer og 1 løsning
variabel--navne og løkker
Jeg har en række checkboxes, som har flg. navnestruktur: name=\"checkbox" . $count".\"
$count tælles op efter hver checkbox, så checkboxene altså får navnene checkbox0 checkbox1 checkbox2 ...osv...
men nu er mit spørgsmål så - hvordan henter jeg disse variabler med samme navn, i en while/for-løkke når jeg submitter?
jeg skal hente $checkbox0, $checkbox1, $checkbox2- er der nogen måde at køre disse igennem i en løkke? det er jo ikke særligt fleksibelt at køre dem én for én..
jeg har prøvet noget lignende $checkbox$count - men det virker ikke...
Du skal have en variabel, som har en vilkårlig værdi, for at du kan vide hvor mange checkboxe du har. Når du tæller $count, kunne du for eksempel gemme værdien af $count i et hidden inputfelt. Når der så submittes, så laver du en for-løkke afhængig af værdien i hidden inputfelt.
Lad os sige...
checkbox0 checkbox1 checkbox2
hidden inputfelt = 2
for (x = 0; x <= count ($_POST['hidden_inputfelt']); $x++) { $checkbox.$x = $_POST['checkbox$x']; }
erikjacobsens svar har virket for mig... (siger jeg lige igen ;)) ... den store forskel er vel punktummet i dit svar, schaefner - men umiddelbart gør det ingen forskel her?
Når spørgeren vil have variablen $checkbox1 osv, og de kommer fra en form, så er det altid bedre et bruge $_POST end at regne med at registerglobals er slået til. $$-metoden ville selvfølgelig virke.
-- medmindre den også skal bruges i nogle javascript-funktioner i klienten, så er problemet bare flyttet til javascript-koden, som har svært ved at håndtere den slags ir-reelle arrays ...
Synes godt om
Slettet bruger
20. februar 2004 - 04:45#14
roenving: Det har du garanteret ret i. Jeg er ikke vant til at skulle tage hensyn til javascript, så den problematik er jeg ikke bekendt med.
Bare et klassisk problem, en stribe html-elementer med samme name vil automatisk blive opfattet som et array af html-komponenter, men typisk opfattet som enkelt-elementer af server-side sprog, som derfor vil stille sig uforstående overfor flere forekomster af det samme ...
-- om de ligefrem overser dem, ved jeg ikke, men hvis man så faciliterer dem med en array-notation som en del af name-attributten, vil javascript (og også html, but who cares, not even html !-) opfatte det som forskellige elementer, som man så skal lave den samme slags konstruktioner for i javascript, som ovenfor er illustreret i php !o]
Synes godt om
Slettet bruger
20. februar 2004 - 04:59#16
Det skal man vel også, hvis de hedder cb0, cb1, cb2 osv, så mit forslag gør det vel ikke sværere at arbejde med i javascript end det var i forvejen? (Medmindre javascript har et problem med [ og ] i navnene.)
siden ingen tilsyneladende vil ha' points, takker jeg for hjælpen og lukker spørgsmålet, for at fortælle at det hele er gået som det skal ;)...
Synes godt om
Ny brugerNybegynder
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.