Enquete + conclusies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

20/10/2005 10:32:00
Quote Anchor link
Hallo,

Voor school ben ik bezig met een project om een enquete te ontwikkelen. Dat is natuurlijk geen probleem, maar nou is de bedoeling dat deze enquete online kan worden gezet, en dat er bepaalde conclusies worden getrokken bij elke “uitslag”.

Ik zal het proberen wat nader toe te lichten aan de hand van een klein voorbeeld:

Er zijn 9 categorien met vragen, die elk op een aparte pagina moeten worden weergegeven. Het zijn allemaal ja/nee vragen, die met een zgn. radio-button worden beantwoord (dus er kan maar 1 vraag worden aangeklikt). Als 0-25% van de antwoorden ‘ja’ is, is conclusie A van toepassing. Als 26-50% van de antwoorden ‘ja’ is, is conclusie B van toepassing. Enzovoorts.

Nou is het dus de bedoeling dat, zodra een gebruiker de laatste categorie heeft ingevuld, dat er dus conclusies op het scherm worden weergegeven van alle 9 categorien. Er moet in het begin NAW-gegevens worden ingevoerd.

Ik denk dat het ongeveer zo moet werken: Iemand vult zijn gegevens in, die worden opgeslagen in een database. Vervolgens begint hij aan de 1e categorie. Deze vragen worden ingevuld en op het eind klikt hij op ‘verder’ o.i.d. Hiermee wordt de conclusie van categorie 1 “berekend” en in de database gezet, onder de tabel 1. Hetzelfde geldt voor de 2e categorie: De vragen worden beantwoord, en op het eind wordt de conclusie in de database gezet en wordt er verder gegaan naar de volgende categorie. En zo gaat dat dus door tot dat alle 9 categorien zijn ingevuld. Dan verschijnt op de volgende pagina een overzicht met de verschillende conclusies, die worden opgehaald uit de database.

Goed, ik weet het allemaal heel goed te vertellen, maar heb niet de technische kennis om het ook te realiseren. Is er iemand die tips/suggesties heeft voor mij?

Alvast bedankt.
 
PHP hulp

PHP hulp

15/01/2025 19:31:40
 
Lissy Pixel

Lissy Pixel

20/10/2005 10:47:00
Quote Anchor link
Ja hoor gewoon beginnen met een stuk script zoals jij denkt dat het moet zijn.
Vanuit daar gaan we je verder helpen en kijken of we dit project aan de praat krijgen.

Wat we niet doen is een heel script voor je opzetten!!

Suc6 en weetje geen vraag is dom of stom alleen die vraag die niet wordt gesteld omdat je bang bent of dat je denkt dat we je niet "cool" vinden omdat je wat vraagt. We vinden je juist wel "cool" wanneer je wat vraagt!!
 
Jan Koehoorn

Jan Koehoorn

20/10/2005 10:57:00
Quote Anchor link
Hallo Jaap,

je kunt dit proces het beste stap voor stap aanpakken. Het slimste lijkt me om met een aanmeldingsformulier te beginnen.

Heb je de beschikking over PHP en MySql?
 

20/10/2005 11:16:00
Quote Anchor link
Hallo Jan,

Ik heb de beschikking over MySql en PHP, ja. Ik ben al op zoek gegaan naar een script voor de registratie, maar tot op heden heb ik nog niks gevonden. Het zijn allemal veel te ingewikkelde scripts, die allemaal met logins, profiel etc. werken. Maar ik moet dus alleen enkele velden hebben die worden ingevoerd in de database, om later te koppelen aan de resultaten van de enquete. Verder worden deze gegevens dus niet meer gebruikt in een login-pagina o.i.d.

Ik zal dus even moeten kijken of ik het zo kan wijzigen dat ik alleen datgene heb wat hiervoor nodig is.
 
Jan Koehoorn

Jan Koehoorn

20/10/2005 11:32:00
Quote Anchor link
Nou, laten we gewoon beginnen.

Welke velden wil je in het eerste formulier hebben?
 

20/10/2005 11:37:00
Quote Anchor link
Het eerste formulier is dus het formulier waarin de contactgegevens komen te staan van diegenen die de enquete zullen doorlopen. Hierbij denk ik aan de volgende velden:

Naam bedrijf
Naam contactpersoon
Functie
Email adres
Telefoonnnummer
 
- SanThe -

- SanThe -

20/10/2005 13:05:00
Quote Anchor link
@Jaap: Ik heb even een opmerking/vraag.
Je wilt na het invullen van een pagina de conclusie op gaan slaan. Is het niet handiger om de \'ja\' score op te slaan i.p.v. de conclusie. Op die manier kan je later ook nog gemiddelden gaan bereken. De conclusie zelf kan je altijd ook nog berekenen vanuit de \'ja\' score.
 

20/10/2005 13:34:00
Quote Anchor link
Dat zou misschien wel handiger zijn, ja. Dus, als ik het goed begrijp, komen in de database dan percentages te staan en op het einde (als alles is ingevuld), leest het scipt die percentages uit de database en zet hij deze dan om in conclusies?
 
TnT -

TnT -

20/10/2005 13:43:00
Quote Anchor link
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%
 
TnT -

TnT -

20/10/2005 13:46:00
Quote Anchor link
TnT:
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%


website is trouwens database, het is handiger om de antwoorden op te tellen en dat dan te delen door de vragen
 

20/10/2005 13:50:00
Quote Anchor link
TnT:
dat is niet handig om in de website de percentages op te slaan, want als je 50% + 50% doet kijg je nooit 100%


Dit snap ik niet helemaal. Volgens mij is het zo dat het percentage \'ja\' wordt berekend op het moment dat je de vragen van categorie 1 hebt ingevuld, en verder klikt om naar categorie 2 te gaan. Op dat moment wordt er een percentage/getal in de desbetreffende database gezet, en op het eind wordt dit uit de database gelezen en weergegeven in de vorm van een conclusie.
 
- SanThe -

- SanThe -

20/10/2005 14:22:00
Quote Anchor link
In de database zet je, mijns inziens, gewoon het aantal goede antwoorden. Dus bijvoorbeeld
vraag1 = 10
vraag2 = 45

Als dan bij vraag 1 bijv. 50 antwoorden mogelijk zijn krijg je dit als uitslag: (uit de database)vraag1 / 50 * 100 en dat geeft dan 20% en daar bind je de conclusie aan vast. En hebben er straks b.v 10 mensen meegedaan dan tel je alles betreffende vraag 1 op uit de database (bv 130) en dan is je gemiddelde (130 (totaal) / 10 (aantal mensen)) / 50 (aantal vragen) * 100 en dat is dan 26%
 
Jan Koehoorn

Jan Koehoorn

20/10/2005 14:22:00
Quote Anchor link
Okee, dan ga je dus eerst het formulier maken waarin mensen die gegevens invullen:

maak bijvoorbeeld een pagina gegevens.php
met daarop:

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
<?php
  // gegevensformulier
  <form method="post">

    <
p>naam bedrijf:
    <
input id="naam_bedrijf" name="naam_bedrijf" type="text">
    <
/p>

   ...
zo alle velden zelf maken

  <p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


  <
/form>
?>


Als je dit form zelf even verder afwerkt en online zet, dan kunnen wij kijken of het klopt ;-)
 

20/10/2005 14:40:00
Quote Anchor link
Wat ik nu heb:

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
<?php
// gegevensformulier
<form method="post">

    <
p>Naam bedrijf:
    <
input id="naam_bedrijf" name="naam_bedrijf" type="text">
    <
/p>

    <
p>Naam contactpersoon:
    <
input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
    <
/p
    
    <p>Functie:
    <
input id="functie" name="functie" type="text">
    <
/p
    
    <p>E-mailadres:
    <
input id="email" name="email" type="text">
    <
/p
    
    <p>Telefoonnummer:
    <
input id="telefoon" name="telefoon" type="text">
    <
/p>

<
p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


  <
/form>
?>
 

20/10/2005 14:43:00
Quote Anchor link
Sorry, ik zie dat ik een paar keer ">" mis. Ik heb ze er nu wel bijstaan:

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
<?php
// gegevensformulier
<form method="post">

    <
p>Naam bedrijf:
    <
input id="naam_bedrijf" name="naam_bedrijf" type="text">
    <
/p>

    <
p>Naam contactpersoon:
    <
input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
    <
/p>
    
    <
p>Functie:
    <
input id="functie" name="functie" type="text">
    <
/p>
    
    <
p>E-mailadres:
    <
input id="email" name="email" type="text">
    <
/p>
    
    <
p>Telefoonnummer:
    <
input id="telefoon" name="telefoon" type="text">
    <
/p>

<
p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


  <
/form>
?>
 
Martijn B

Martijn B

20/10/2005 15:09:00
Quote Anchor link
Je formulier moet ergens naar toe gestuurd worden anders heb je er niets aan de gegevens op dat formulier dus voeg aan de form tag een action toe, dus:

<form action="enquete.php" method="post">

Maak dan dit bestand aan en begin met:
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
<?php
error_reporting(E_ALL); # Alle PHP errors weergeven


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

  # Het formulier is verzonden

   # Even kijken wat we allemaal hebben verstuurd

   print_r($_POST);

   # Verbinding maken met de database server
   # Database selecteren
   # Query maken
   # Query uitvoeren  

}
else
{
  # Er is niets verzonden

}
?>
 
Jan Koehoorn

Jan Koehoorn

20/10/2005 15:13:00
Quote Anchor link
Okee, ziet er keurig uit. Nu moet je gaan kijken hoe je deze gegevens gaat verwerken.

Je hebt een MySql tabel nodig. Noem hem "personen" en maak hem aan in PHP MyAdmin (als je dat hebt).

velden:
id - int - autoincrement - primairy key
naam_bedrijf - varchar 128
naam_contactpersoon - varchar 128
functie - varchar 128
email - varchar 64
telefoon - varchar 16
Gewijzigd op 20/10/2005 15:14:00 door Jan Koehoorn
 

20/10/2005 15:18:00
Quote Anchor link
Hmm, nou ben ik de weg even kwijt :)

Ik heb dus het bestand "gegevens.php" met daarin de volgende code:

Quote:
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
<?php
// gegevensformulier
<form method="post">

    <
p>Naam bedrijf:
    <
input id="naam_bedrijf" name="naam_bedrijf" type="text">
    <
/p>

    <
p>Naam contactpersoon:
    <
input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
    <
/p>
    
    <
p>Functie:
    <
input id="functie" name="functie" type="text">
    <
/p>
    
    <
p>E-mailadres:
    <
input id="email" name="email" type="text">
    <
/p>
    
    <
p>Telefoonnummer:
    <
input id="telefoon" name="telefoon" type="text">
    <
/p>

<
p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


  <
/form>
?>


Moet ik in het bestand "gegevens.php" dan de volgende code toevoegen:

Quote:
<form action="enquete.php" method="post">


En een nieuwe file aanmaken ("enquete.php") met de volgende code:

Quote:
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
<?php
error_reporting(E_ALL); # Alle PHP errors weergeven


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

  # Het formulier is verzonden

   # Even kijken wat we allemaal hebben verstuurd

   print_r($_POST);

   # Verbinding maken met de database server
   # Database selecteren
   # Query maken
   # Query uitvoeren    

}
else
{
  # Er is niets verzonden

}
?>


Heb ik het zo goed begrepen of doe ik iets fout?
 
Martijn B

Martijn B

20/10/2005 15:24:00
Quote Anchor link
Je kunt ook alles bijelkaar in doen maar 1 bestand om het formulier te laten zien en 1 om de gegevens te verwerken vind ik mooier, beter en overzichtelijker.

Trouwens, je kunt de gebruiker weer terug sturen naar gegevens.php als er niets is verzonden, dat doe je zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
# Er is niets verzonden
header('Location: gegevens.php');
exit;
?>


Tussen de accolades...
Gewijzigd op 20/10/2005 15:25:00 door Martijn B
 

20/10/2005 15:28:00
Quote Anchor link
Jan,

Het is gelukt, denk ik. Ik heb in ieder geval geen foutmelding gehad en krijg nu de volgende tekst te zien:

Quote:
SQL-query:
CREATE TABLE `personen` (
`id` INT NOT NULL AUTO_INCREMENT ,
`naam_bedrijf` VARCHAR( 128 ) NOT NULL ,
`naam_contactpersoon` VARCHAR( 128 ) NOT NULL ,
`functie` VARCHAR( 128 ) NOT NULL ,
`email` VARCHAR( 64 ) NOT NULL ,
`telefoon` VARCHAR( 16 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
 
Martijn B

Martijn B

20/10/2005 15:38:00
Quote Anchor link
Ik weet niet precies hoeveel getallen er nu in je primary key kolom kunnen maar dit lijkt mij beter

`id` int(10) unsigned NOT NULL auto_increment,

unsigned betekend dat Mysql alleen rekening hoeft te houden met gehele getallen (dus niet negatief).
 

Pagina: 1 2 volgende »



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.