Form input array's volgorde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis WhoCares

Dennis WhoCares

14/04/2016 12:31:09
Quote Anchor link
Hi all,

ik heb een hele korte vraag.
Als ik een formulier heb met array's
bijv. <input type="text" name="my_options[]"> <input type="text" name="my_settings[]">

Als ik dan in php $options = $_POST['my_options']; $settings = $_POST['my_settings[]'];

Kan ik er dan van uit gaan, dat de volgorde van my_options en my_settings hetzelfde is?
Dat $settings[8] ook bij $options[8] hoort?
Gewijzigd op 14/04/2016 12:37:49 door Dennis WhoCares
 
PHP hulp

PHP hulp

16/11/2024 21:42:33
 
Team Zero

Team Zero

14/04/2016 13:35:09
Quote Anchor link
Yes

:)
 
Thomas van den Heuvel

Thomas van den Heuvel

14/04/2016 13:50:53
Quote Anchor link
Je zou expliciet een setting id mee kunnen geven tussen de rechte haken. Of zorgen dat er evenveel options als settings zijn.

Maar zijn deze variabel dan? Waarom heb je opties en settings? Wat is het verschil hiertussen? En als er geen verschil is, wat ik een beetje uit het bovenstaande verhaal opmaak, waarom gebruik je dan twee verschillende notaties voor hetzelfde ding?
 
Dennis WhoCares

Dennis WhoCares

14/04/2016 15:11:26
Quote Anchor link
Hi Team Zero, thanks :)

Thomas, ik merk nu dat ik het verkeerd verwoord heb en onderweg in de trein niet goed nagedacht heb.
Ik heb niet evenveel opties als settings

Ehm, ik zal de settings een nummer geven, setting1[]
Een optie is eigenlijk alleen een naam, en de setting is de daadwerkelijke optie voor hieronder.

Maar de volgorde is wel zoals ik ze invoer dus. Als ik 10 inputs heb van setting[] dan is de laatste invoer daadwerkelijk $_POST['setting'][9]
 
Thomas van den Heuvel

Thomas van den Heuvel

14/04/2016 15:31:26
Quote Anchor link
Maar als je deze settings opslaat worden dit toch auto increment id's ofzo, als je deze dan later bewerkt dan kan de nummering nogal uiteenlopen? Je zou ook de volgorde nog apart bij kunnen houden bij een reeks settings ofzo.

Ik zie nog steeds niet helemaal het verschil tussen de "options" en "settings".

Een concreet voorbeeld van gebruik zou je vraagstelling (en het beantwoorden ervan) vele malen makkelijker kunnen maken.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/04/2016 18:25:52
Quote Anchor link
Dennis WhoCares op 14/04/2016 12:31:09:
Kan ik er dan van uit gaan, dat de volgorde van my_options en my_settings hetzelfde is?
Dat $settings[8] ook bij $options[8] hoort?


De volgorde komt terug zoals ze op het moment van versturen in de HTML DOM staan.
Dat wil zeggen dat een slimmerik de originele HTML kan wijzigen en dan komen ze in de verkeerde volgorde op de server binnen. Dit kan ook doelbewust gedaan worden met bijvoorbeeld jQuery's Sortable.

Mijn aanbeveling zou dus zijn om je $_POST array goed op te bouwen.
Zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    echo '<pre>' . print_r($_POST, TRUE) . '</pre>';
}

?>

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>een titel</title>
    </head>
    <body>
        <form action="" method="post">
            <input type="text" name="users[0][name]" value="Frank" />
            <input type="text" name="users[0][email]" value="[email protected]" /><br>
            
            <input type="text" name="users[1][name]" value="Dennis" />
            <input type="text" name="users[1][email]" value="[email protected]" /><br>
            
            <button type="submit">Verzenden</button>
        </form>
    </body>
</html>


Output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Array
(
    [users] => Array
        (
            [0] => Array
                (
                    [name] => Frank
                    [email] => [email protected]
                )

            [1] => Array
                (
                    [name] => Dennis
                    [email] => [email protected]
                )

        )

)
Gewijzigd op 14/04/2016 19:12:12 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.