vullen van array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerard Brieder

Gerard Brieder

09/07/2018 15:03:39
Quote Anchor link
Hallo beste PHP liefhebbers,

Ik heb een vraag betreffende het maken van een array, die gevuld wordt naar aanleiding van de vooraf aan gevinkte opties.

Dit is het programma:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
session_start();
/*
 * De naam van het programma: Test_Label_array.php
 * De ontwikkelingsdatum: 2018-07-09
 * De naam van de auteur:
 *
 * De edit opleverings datum:
 * De naam van de editor:
 *
 * versie nummer: 0.1
 *
 * De beschrijving van het programma:
 * Vult de array $labels
 */

?>

<html>
    <head>
        <title>vult array $labels</title>
        <meta charset="UTF-8">
        <meta name="Login" content="width=device-width, initial-scale=1.0">
        <meta "description" content="Test programma om label array te vullen.">
        <meta name="author" content="naam">
    </head>

    <body>
    <?php
        
        /* Gewenste data definitie: ongewenst=0 gewenst=1 */
        $_SESSION['fam_user_name']=1;
        $_SESSION['fam_e_mail']=0;
        $_SESSION['fam_passwd']=0;
        $_SESSION['fam_street']=0;
        $_SESSION['fam_complex_no']=1;
        $_SESSION['fam_birth_date']=0;
        /* checkbox invoer j/n */
        $_SESSION['checkbox_1']=1;
        $_SESSION['checkbox_2']=0;

/* Maak een labels array met alle formulier velden handmatig (dit werkt!). */
/* $labels = array('user_name' => 'Familie_naam',
'complex_no' => 'Complex_nummer',
'sfinx_new' => 'Sfinx_complex'); */

        /* Maak een optioneel labels array met alle keuze velden, */
        /* die in het formulier moeten voorkomen.                 */
        
        /* $opties_aan="(";*/ /* Voeg haakje open toe */


        if ($_SESSION['fam_user_name']<>0) {
            $opties_aan=$opties_aan."'user_name' => 'Familie_naam',";
        }

        if ($_SESSION['fam_e_mail']<>0) {
            $opties_aan=$opties_aan."'e_mail' => 'mailadres',";
        }

        if ($_SESSION['fam_user_passwd']<>0) {
            $opties_aan=$opties_aan."'passwd' => 'paswoord',";
        }

        if ($_SESSION['fam_street']<>0) {
            $opties_aan=$opties_aan."'street' => 'straat',";
        }

        if ($_SESSION['fam_complex_no']<>0) {
            $opties_aan=$opties_aan."'complex_no' => 'Complex_huisnummer',";
        }

        if ($_SESSION['fam_birth_date']<>0) {
            $opties_aan=$opties_aan."'birth_date' => 'Geboortedatum',";
        }

        if ($_SESSION['checkbox_1']<>0) {
            $opties_aan=$opties_aan."'sfinx_new' => 'Sfinx_complex',";
        }
        
        if ($_SESSION['checkbox_2']<>0) {
            $opties_aan=$opties_aan."'boxtekst2' => 'Boxtekst2',";
        }
          
        /* Haal laatste comma weg  */
        $opties_aan = substr_replace($opties_aan,"",-1);
        
        /* $opties_aan = $optie_aan.")"; */ /* Voeg haakje sluiten toe */
        /* $labels = array.$opties_aan */

        

$labels = array ($opties_aan); /* dit werkt niet!!!!! */

        echo "Dit is de inhoud van de string: ".$opties_aan."<br><br>";
        echo "Dit zijn de veldnamen en inhoud van de velden:<br>";
        foreach ($labels as $field => $value) {
            echo "Naam van veld: ".$field." Inhoud van veld: ".$value."<br>" ;
        }

    ?>

    </body>
</html>

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 09/07/2018 15:42:43 door - Ariën -
 
PHP hulp

PHP hulp

19/03/2024 05:48:50
 
- Ariën  -
Beheerder

- Ariën -

09/07/2018 15:44:13
Quote Anchor link
Wat zegt var_dump over $opties_aan? en over $labels?
Deze functie is ideaal om te debuggen en dus ook om te kijken wat voor datatype en waarde er in een variabele zitten.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/07/2018 15:51:33
Quote Anchor link
Waarom maak je van $opties_aan niet direct een array? Nu is het een hele lange string met het uiterlijk van een array?

Ik zou eerder iets verwachten in de trant van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (array_key_exists('fam_user_name', $_SESSION) {
    $opties_aan['user_name'] = 'Familie_naam';
}

?>

Ook loont het de moeite om de index-namen van de sessie en $opties_aan gelijk te stellen, zodat je zoiets kunt doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
foreach (array(
    'fam_user_name' => 'Familie_naam',
    'fam_email' => 'mailadres',
    // et cetera
) as $k => $v) {
    if (array_key_exists($k, $_SESSION)) {
        $opties_aan[$k] = $v;
    }
}

?>
 
Gerard Brieder

Gerard Brieder

09/07/2018 15:55:49
Quote Anchor link
Geeft de zelfde output als die ik zelf al gemaakt had om te zien wat er in de variabele stond. Sorry Arien!

Toevoeging op 09/07/2018 16:03:38:

Thomas, bedankt voor je reactie.
Deze oplossing, begrijp ik nog niet helemaal.
Ik neem even de tijd om dit uit te werken en te begrijpen.
Daarna kom ik er op terug.
Ik hoop dat mij dit helpt, zo niet, dan ligt het niet aan jou maar aan mij zelf en begrijp ik het niet.
Het heeft gelukkig geen haast, dus studeren maar even!
vriendelijke groet,
Gerard


Toevoeging op 10/07/2018 01:27:30:

Thomas,
Bedankt voor je goede opmerking, ik heb er nu rechtstreeks een array van gemaakt en het werkt.
Ook via jou voorbeeld zag ik hoe je de array kon vullen, dat wist ik niet dat dit zo mogelijk was.
Ik kan weer verder.
Zie onderstaand:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
    session_start();
    /*
    * De naam van het programma: Test_Label2_array.php
    * De ontwikkelingsdatum: 2018-07-09
    * De naam van de auteur: G.J. de Brieder Sr.
    *
    * De edit opleverings datum:
    * De naam van de editor:
    *
    * versie nummer: 0.02
    *
    * De beschrijving van het programma:
    * Test de inhoud van array $labels
    */
        
    /* Gewenste data definitie: ongewenst=0 gewenst=1 */

    $_SESSION['fam_user_name']=1;
    $_SESSION['fam_e_mail']=0;
    $_SESSION['fam_passwd']=0;
    $_SESSION['fam_street']=0;
    $_SESSION['fam_complex_no']=1;
    $_SESSION['fam_birth_date']=0;
    /* checkbox invoer j/n */
    $_SESSION['checkbox_1']=1;
    $_SESSION['checkbox_2']=0;

    /* Maak een optioneel labels array met alle keuze velden, */
    /* die in het formulier moeten voorkomen (Nu is dat:      */
    /* user_name, complex_no en een checkbox_1)               */

    
    $opties_aan=array ();
    if ($_SESSION['fam_user_name']==1) {
        $opties_aan['user_name'] = 'Familie_naam';
    }

    if ($_SESSION['fam_e_mail']==1) {
        $opties_aan['e_mail'] = 'Mailadres';
    }

    if ($_SESSION['fam_passwd']==1) {
        $opties_aan['passwd'] = 'Paswoord';
    }

    if ($_SESSION['fam_street']==1) {
        $opties_aan['street'] = 'Straat';
    }

    if ($_SESSION['fam_complex_no']==1) {
        $opties_aan['complex_no'] = 'Huisnummer';
    }

    if ($_SESSION['fam_birth_date']==1) {
        $opties_aan['birth_date'] = 'Geboortedatum';
    }

    if ($_SESSION['checkbox_1']==1) {
        $opties_aan['sfinx_new'] = 'Sfinx_complex';
    }

    if ($_SESSION['checkbox_2']==1) {
        $opties_aan['checkbox_2'] = 'Checkbox2';
    }

    echo "Dit is de inhoud van de string: ".$opties_aan."<br><br>";
    echo "Dit zijn de veldnamen en inhoud van de velden:<br>";
    foreach ($opties_aan as $field => $value) {
        echo "Naam van veld: ".$field." Inhoud van veld: ".$value."<br>" ;
    }


?>
 



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.