Probleem met classes in Enquete formulier.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Buyvoets

Tom Buyvoets

05/10/2016 11:19:56
Quote Anchor link
Goedemiddag allen,

Ik ben nieuw hier op het forum en ben sinds kort bezig met php. Ik heb van school een opdracht gekregen om een enquête formulier te maken en deze data weg te schrijven in een database. Ik heb het werkend gekregen maar op een omslachtige manier. Ik wil het script nu zo gaan schrijven dat er een class wordt gebruikt om alle antwoorden van het html formulier uit te lezen.

Als test en voor de duidelijkheid in de werkende situatie(omslachtig) en de niet werkende versie heb ik alleen bij de eerste vraag gebruik gemaakt van de class en lees ik de andere 3 vragen uit op de oude manier.

Het precieze probleem is nu dat ik de class niet werkende kan krijgen en gewoon een witte pagina krijg. Hij redirect wel naar het insert_data_DB.php pagina.

Ik hoop dat iemand mij uit de brand kan helpen.

Alvast bedankt!

Groet,

Tom

De files:

De vragenlijst:

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
            <h2>De vragenlijst</h2>

            <h3>1a In onze organisatie / bedrijf zien wij mogelijkheden voor het aannemen van mensen met arbeidsbeperking</h3>
            <form action="insert_data_DB.php" method="get">
                <label for="ja">Ja</label>
                <input type="radio" name="mogelijkheden" id="ja" value="ja"/>
                <label for="nee">Nee</label>
                <input type="radio" name="mogelijkheden" id="nee" value="nee"/>
                <label for="weetniet">Weet niet/geen antwoord</label>
                <input type="radio" name="mogelijkheden" id="weetniet" value="weet niet"/>


            <h3>1b In onze organisatie zijn er een of meer openstaande vacatures die ingevuld zouden kunnen worden door iemand met een arbeidsbeperking</h3>

                <label for="ja">Ja</label>
                <input type="radio" name="vacatures" id="ja" value="ja"/>
                <label for="nee">Nee</label>
                <input type="radio" name="vacatures" id="nee" value="nee"/>
                <label for="weetniet">Weet niet/geen antwoord</label>
                <input type="radio" name="vacatures" id="weetniet" value="weet niet"/>


            <h3>2. In oze organisatie / bedrijf zijn op dit moment mensen met een arbeidsbeperking actief.</h3>

                <label for="ja">Ja</label>
                <input type="radio" name="mensenactief" id="ja" value="ja"/>
                <label for="nee">Nee</label>
                <input type="radio" name="mensenactief" id="nee" value="nee"/>


            <h3> Wilt u bij de volgende vragen aangeven in hoeverre deze factoren een rol hebben gespeeld bij het aannemen van medewerkers met een arbeidsbeperking?</h3>

            <h3>3a. Sociale overwegingen(vorbeeld: de werknemer met arbeidsbeperking een kans willen geven)</h3>
                <label for="zeerbelangrijk">Zeer belangrijk</label>
                <input type="radio" name="socialeoverwegingen" id="zeerbelangrijk" value="Zeer belangrijk"/>
                <label for="belangrijk">Belangrijk</label>
                <input type="radio" name="socialeoverwegingen" id="belangrijk" value="Belangrijk"/>
                <label for="neutraal">Neutraal</label>
                <input type="radio" name="socialeoverwegingen" id="neutraal" value="Neutraal"/>
                <label for="onbelangrijk">Onbelangrijk</label>
                <input type="radio" name="socialeoverwegingen" id="onbelangrijk" value="Onbelangrijk"/>
                <label for="zeeronbelangrijk">Zeer onbelangrijk</label>
                <input type="radio" name="socialeoverwegingen" id="zeeronbelangrijk" value="Zeer onbelangrijk"/>
                <label for="nietvantoepassing">Niet van toepassing</label>
                <input type="radio" name="socialeoverwegingen" id="nietvantoepassing" value="Niet van toepassing"/>
                <input type="submit" name="verzenden" value="Verzenden"/>
            </form>


Het script achter het formulier:

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
<?php

    require 'connect.php';
        
        class FormRadioUitlezen{
            
            public $name;
            public function __construct($name){
                $this->name = $name;
            }

        
            public function {
                if (!empty($_GET[$name])){
                    return $_GET[$name];
                }
            }
        
        }
  

        if (isset($_GET['verzenden'])){
            
            $antwoord1a = new FormRadioUitlezen('mogelijkheden');
            
            if (!empty($_GET['vacatures'])){
                $vacaturesAntwoord = $_GET['vacatures'];
            }
else{
                echo 'vraag 1b is een verplichte vraag!';
            }

            
            if (!empty($_GET['mensenactief'])){
                $mensenactiefAntwoord = $_GET['mensenactief'];
            }
else{
                echo 'Vraag 2b is een verplichte vraag!';
            }

            
            if (!empty($_GET['socialeoverwegingen'])){
                $socialeoverwegingenAntwoord = $_GET['socialeoverwegingen'];
            }
else{
                echo 'Vraag 3a is een verplichte vraag!';
            }  
        }

            
    
            



        $sql = "INSERT INTO antwoorden (antwoord1a, antwoord1b, antwoord2, antwoord3a) VALUES ( '$antwoord1a', '$vacaturesAntwoord', '$mensenactiefAntwoord', '$socialeoverwegingenAntwoord')";

        if ($conn->query($sql) === TRUE) {
            echo "De antwoorden zijn opgeslagen!";
        }
else {
            echo "Error: " . $sql . "<br>" . $conn->error;
        }


        $conn->close();
    
?>


Ward:
HTML ingekort en [code][/code]-tags toegevoegd.
Gewijzigd op 05/10/2016 12:14:16 door Ward van der Put
 
PHP hulp

PHP hulp

26/04/2024 10:03:43
 
Ward van der Put
Moderator

Ward van der Put

05/10/2016 12:16:50
Quote Anchor link
Je gebruikt in de class een functie zonder naam:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
            public function {
                if (!empty($_GET[$name])){
                    return $_GET[$name];
                }
            }

?>
 
Tom Buyvoets

Tom Buyvoets

05/10/2016 12:53:56
Quote Anchor link
Oeps dat was een foutje :).

Ik heb het aangepast. Helaas werkt het dan nog steeds niet. Ik krijg nog steeds een witte pagina zonder dag de data weggeschreven wordt en de database.
 
Adoptive Solution

Adoptive Solution

05/10/2016 13:21:13
Quote Anchor link
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
<?php

class FormRadioUitlezen {
    public function controle($get,$vraag) {
        if ($_GET[$get]) {
            return $_GET[$get];
        }
else {
            return '!vraag ' . $vraag . ' is verplicht';
        }
    }
}


$obj = new FormRadioUitlezen();
echo 'mogelijkheden : ' . $obj->controle('mogelijkheden','1a') . '<br />';
echo 'vacatures : ' . $obj->controle('vacatures','1b') . '<br />';
echo 'mensenactief : ' . $obj->controle('mensenactief','2b') . '<br />';
echo 'socialeoverwegingen : ' . $obj->controle('socialeoverwegingen','3a') . '<br />';

?>


Als je het in een php bestand plakt, kan je het zien met een dergelijke url :

http://controle.php?mogelijkheden=weinig&vacatures=geen

Je kan ook aan de meester vragen hoe het moet. Wat het meest voor de hand ligt, tenzij het onderwijs daarin niet voorziet. Of zelfs overleggen met medecursisten.
 
Ward van der Put
Moderator

Ward van der Put

05/10/2016 13:37:22
Quote Anchor link
Ik zou de class FormRadioUitlezen uitsplitsen. Je krijgt een beter objectgeoriënteerd ontwerp als je dingen die iets zijn scheidt van dingen die iets doen. Dat kan al heel eenvoudig door er bijvoorbeeld een class FormRadio met een methode read() van te maken.
 
Adoptive Solution

Adoptive Solution

05/10/2016 18:31:27
Quote Anchor link
Omdat het altijd beter kan heb ik dit bedacht :

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
<?php

class FormRadioUitlezen {
    public function controle(&$variabele,$get) {
        if ( isset( $_GET[$get] ) && $_GET[$get] <> "" ) {
            $variabele = $_GET[$get];
            return TRUE;
        }
else {
            $variabele = '';
            return FALSE;
        }
    }
}


$error = '';
$goed = '';

$obj = new FormRadioUitlezen();

if ( $obj->controle($mogelijkheden,'mogelijkheden') === FALSE) {
    $error .= 'mogelijkheden is fout<br />';
}
else {
    $goed .= 'mogelijkheden is goed<br />';
}


if ( $obj->controle($vacatures,'vacatures') === FALSE) {
    $error .= 'vacatures is fout<br />';
}
else {
    $goed .= 'vacatures is goed<br />';
}


if ( $obj->controle($mensenactief,'mensenactief') === FALSE) {
    $error .= 'mensenactief is fout<br />';
}
else {
    $goed .= 'mensenactief is goed<br />';
}


if ( $obj->controle($socialeoverwegingen,'socialeoverwegingen') === FALSE) {
    $error .= 'socialeoverwegingen is fout<br />';
}
else {
    $goed .= 'socialeoverwegingen is goed<br />';
}


echo '<h3>Wat is er ingevoerd</h3>';

echo 'mogelijkheden => ' . $mogelijkheden . '<br />';
echo 'vacatures => ' . $vacatures . '<br />';
echo 'mensenactief => ' . $mensenactief . '<br />';
echo 'socialeoverwegingen => ' . $socialeoverwegingen . '<br />';

echo '<h3>Wat is fout</h3>';

echo $error;

echo '<h3>Wat is goed</h3>';

echo $goed;

echo '<h3>Toevoegen aan database of niet</h3>';

if ($error) {
    echo 'niet toevoegen aan database<br />';
}
else {
    echo 'toevoegen aan database<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.