Onthouden options menu na post

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Thomas

Thomas

20/04/2007 16:24:00
Quote Anchor link
Ik zit al een paar dagen tegen een probleem aan waarbij ik niet weet hoe ik een waarde in de options menu kan onthouden op een simpele manier. Ik ben erachter dat ik cookies kan gebruiken of een sessie, maar ik wil het liever op een manier doen in Javascript, dit is mijn code:

<!--SELECTIE NETWERKEN !-->

<div id="leftmenu">
<form name="jump" action="download.php" method="post">
<select name="providers">
<option value="kpnhi">KPN/Hi</option>
<option value="kpnhiimode">KPN/Hi iMode</option>
<option value="vodafone">Vodafone</option>
<option value="vodafonelife">Vodafone Life</option>
<option value="telfort">Telfort</option>
<option value="tmobile&brand">T-Mobile</option>
<option value="tmobiletzones">T-Mobile T-Zones</option>
<option value="orange">Orange</option>
<option value="orangeworld">Orange World</option>
</select>
</div>

<!--SELECTIE TELEFOONS !-->

<div id="rightmenu">
<select name="telefoons">
<option value="Alle telefoons">Alle telefoons</option>
<option value="nokia">Nokia</option>
<option value="sony">Sony Ericsson</option>
<option value="sagem">Sagem</option>
<option value="blackberry">Blackberry</option>
<option value="lg">LG</option>
<option value="sie">Siemens</option>
<option value="sam">Samsung</option>
<option value="alcatel">Alcatel</option>
<option value="mot">Motorola</option>
<option value="nec">NEC</option>
<option value="benq">BENQ</option>
<option value="sharp">Sharp</option>
<option value="sanyo">Sanyo</option>
<option value="philips">Philips</option>
<option value="panasonic">Panasonic</option>
</select>
<input type="submit"name="submit" value ="Go!">
</form>
</div>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    if (isset($_POST['submit']))
    {
    
        $provider = $_POST['providers'];
        $brand = $_POST['telefoons'];    
    }
    
?>


Kan ik op een simpele manier met onChange of onClick zoiets bereiken na een $_POST? Of is het handiger om met onClick de URL aan te passen middels een $_GET? Dit heb ik al geprobeert, echt zonder succes.

Gr,

Thomas
 
PHP hulp

PHP hulp

25/11/2024 07:33:03
 
Jan Koehoorn

Jan Koehoorn

20/04/2007 17:53:00
Quote Anchor link
Voorbeeldpagina: Een selectbox onthouden met OOP
Code:
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL | E_STRICT);
    class core {
        protected $errs;
        protected $msgs;
        
        /*
        * constructor
        */

        function __construct () {
            $this->errs = array ();
            $this->msgs = array ();
        }

        
        /*
        * setters
        */

        function set_err ($err) {
            array_push ($this->errs, $err);
        }

        function
set_msg ($msg) {
            array_push ($this->msgs, $msg);
        }

        
        /*
        * getters
        */

        function get_errs () {
            return $this->errs;
        }

        function
get_msgs () {
            return $this->msgs;
        }

        
        /*
        * return the number of messages, if any
        * @return int
        */

        function has_msgs () {
            return count ($this->msgss);
        }

        
        /*
        * return the number of errors, if any
        * @return int
        */

        function has_errs () {
            return count ($this->errs);
        }
    }

    
    class selectbox extends core {
        protected $name;
        protected $values;
        protected $options;
        protected $selected;
        protected $n;
        
        /* constructor */
        function __construct ($name, $values, $options, $selected) {
            parent::__construct ();
            if (!is_array ($values)) {
                $this->set_err ('<p>Het eerste argument moet een array zijn</p>');
            }

            if (!is_array ($options)) {
                $this->set_err ('<p>Het tweede argument moet een array zijn</p>');
            }

            if (count ($values) != count ($options)) {
                $this->set_err ('<p>De arrays moeten even lang zijn</p>');
            }

            $name = trim ($name);
            $name = preg_replace ('/[^a-zA-Z0-9]/', '', $name);
            if (empty ($name)) {
                $this->set_err ('<p>Geen geldige naam opgegeven</p>');
            }

            $this->name = $name;
            $this->values = $values;
            $this->options = $options;
            $this->selected = $selected;
            $this->n = count ($values);
        }

        
        /*
            @get_html:    haal de HTML code voor de select op
        */

        function get_html () {
            $html = PHP_EOL;
            $html .= '<select id="' . $this->name . '" name="' . $this->name . '">';
            for ($i = 0; $i < $this->n; $i++) {
                if ($this->selected == $this->values[$i]) {
                    $html .= PHP_EOL . '<option selected="selected" value="' . $this->values[$i] . '">' . $this->options[$i] . '</option>';
                }

                else {
                    $html .= PHP_EOL . '<option value="' . $this->values[$i] . '">' . $this->options[$i] . '</option>';
                }
            }

            $html .= PHP_EOL . '</select>';
            return $html;
        }
    }

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Options onthouden</title>
    <style type="text/css">
    @import 'oop.css';
    </style>
</head>

<body>
    <div id="container">
    <div class="wrapper">
        <h1>Selectbox class</h1>
        <form method="post" action="#">
            <p>
                <?php
                    $name
= 'groente';
                    $values = range (1, 9);
                    $options = array ('sla', 'spruitjes', 'andijvie', 'sperziebonen', 'worteltjes', 'witlof', 'broccoli', 'bloemkool', 'uien');
                    $selected = (isset ($_POST[$name])) ? ($_POST[$name]) : ($values[0]);
                    $sel = new selectbox ($name, $values, $options, $selected);
                    echo $sel->get_html ();
                ?>

            </p>
            <p>
                <input type="submit" value="verzenden">
            </p>
        </form>
        <?php
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                echo '<pre>';
                print_r ($_POST);
                echo '</pre>';
            }

            if ($sel->has_errs ()) {
                echo '<div class="errs">';
                foreach ($sel->get_errs () as $err) {
                    echo $err;
                }

                echo '</div>';
            }

        ?>

    </div>
    </div>
</body>
</html>
 
Thomas

Thomas

21/04/2007 02:35:00
Quote Anchor link
Bedankt voor je mooi OOP functie, echter krijg ik nu een error die mij dwingt om over te stappen naar PHP 5.0 of hoger:

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in download.php on line 54

Ik denk vanwege de "protected" waarde in de CLASS core. Desallniettemin, bedankt voor je professionele oplossing! :)
 
Erik Rijk

Erik Rijk

21/04/2007 02:40:00
Quote Anchor link
http://phphulp.nl/php/tutorials/2/404/

^^ Tutorial van Jan Koehoorn.
Hiermee moet het wel lukken denk ik.
 
Jan Koehoorn

Jan Koehoorn

21/04/2007 09:06:00
Quote Anchor link
Thomas schreef op 21.04.2007 02:35:
Bedankt voor je mooi OOP functie, echter krijg ik nu een error die mij dwingt om over te stappen naar PHP 5.0 of hoger:

Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in download.php on line 54

Ik denk vanwege de "protected" waarde in de CLASS core. Desallniettemin, bedankt voor je professionele oplossing! :)

Om hem geschikt te maken voor PHP4 kun je het volgende doen:

1) overal waar protected staat, maak je er var van
2) verander de functienaam __construct in de naam van de class (respectievelijk core en selectbox)
3) in de constructor van de selectbox class verander je dit:

parent::__construct ();

in dit:

parent::core ();

Let er op dat je de constructor van de core class ook aangepast hebt.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 



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.