invoer percentueel afhankelijk van voorgaand resultaat.
de verdeling kan gezamelijk 100 procent zijn maar mag nooit meer zijn
ik heb onderstaand scriptje gemaakt wat ik naar de database stuur, ophalen en verzenden van de ingevoerde data gaat perfect
maar hoe kan ik de selectie van het tweede veld afhankelijk maken van de eerste invoer.
Code (php)
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
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
<input type="radio" name="B" value="1" <?php if ($button2 == '1') echo 'checked="checked"'; ?>>10%
<input type="radio" name="B" value="2" <?php if ($button2 == '2') echo 'checked="checked"'; ?>>20%
<input type="radio" name="B" value="3" <?php if ($button2 == '3') echo 'checked="checked"'; ?>>30%
<input type="radio" name="B" value="4" <?php if ($button2 == '4') echo 'checked="checked"'; ?>>40%
<input type="radio" name="B" value="5" <?php if ($button2 == '5') echo 'checked="checked"'; ?>>50%
<input type="radio" name="B" value="6" <?php if ($button2 == '6') echo 'checked="checked"'; ?>>60%
<input type="radio" name="B" value="7" <?php if ($button2 == '7') echo 'checked="checked"'; ?>>70%
<input type="radio" name="B" value="8" <?php if ($button2 == '8') echo 'checked="checked"'; ?>>80%
<input type="radio" name="B" value="9" <?php if ($button2 == '9') echo 'checked="checked"'; ?>>90%
<input type="radio" name="B" value="10" <?php if ($button2 == '10') echo 'checked="checked"'; ?>>99%
<input type="radio" name="B" value="11" <?php if ($button2 == '11') echo 'checked="checked"'; ?>>nvt<br>
<input type="radio" name="D" value="1" <?php if ($button4 == '1') echo 'checked="checked"'; ?>>10%
<input type="radio" name="D" value="2" <?php if ($button4 == '2') echo 'checked="checked"'; ?>>20%
<input type="radio" name="D" value="3" <?php if ($button4 == '3') echo 'checked="checked"'; ?>>30%
<input type="radio" name="D" value="4" <?php if ($button4 == '4') echo 'checked="checked"'; ?>>40%
<input type="radio" name="D" value="5" <?php if ($button4 == '5') echo 'checked="checked"'; ?>>50%
<input type="radio" name="D" value="6" <?php if ($button4 == '6') echo 'checked="checked"'; ?>>60%
<input type="radio" name="D" value="7" <?php if ($button4 == '7') echo 'checked="checked"'; ?>>70%
<input type="radio" name="D" value="8" <?php if ($button4 == '8') echo 'checked="checked"'; ?>>80%
<input type="radio" name="D" value="9" <?php if ($button4 == '9') echo 'checked="checked"'; ?>>90%
<input type="radio" name="D" value="10" <?php if ($button4 == '10') echo 'checked="checked"'; ?>>99%
<input type="radio" name="D" value="11" <?php if ($button4 == '11') echo 'checked="checked"'; ?>>nvt<br>
<input type="radio" name="B" value="2" <?php if ($button2 == '2') echo 'checked="checked"'; ?>>20%
<input type="radio" name="B" value="3" <?php if ($button2 == '3') echo 'checked="checked"'; ?>>30%
<input type="radio" name="B" value="4" <?php if ($button2 == '4') echo 'checked="checked"'; ?>>40%
<input type="radio" name="B" value="5" <?php if ($button2 == '5') echo 'checked="checked"'; ?>>50%
<input type="radio" name="B" value="6" <?php if ($button2 == '6') echo 'checked="checked"'; ?>>60%
<input type="radio" name="B" value="7" <?php if ($button2 == '7') echo 'checked="checked"'; ?>>70%
<input type="radio" name="B" value="8" <?php if ($button2 == '8') echo 'checked="checked"'; ?>>80%
<input type="radio" name="B" value="9" <?php if ($button2 == '9') echo 'checked="checked"'; ?>>90%
<input type="radio" name="B" value="10" <?php if ($button2 == '10') echo 'checked="checked"'; ?>>99%
<input type="radio" name="B" value="11" <?php if ($button2 == '11') echo 'checked="checked"'; ?>>nvt<br>
<input type="radio" name="D" value="1" <?php if ($button4 == '1') echo 'checked="checked"'; ?>>10%
<input type="radio" name="D" value="2" <?php if ($button4 == '2') echo 'checked="checked"'; ?>>20%
<input type="radio" name="D" value="3" <?php if ($button4 == '3') echo 'checked="checked"'; ?>>30%
<input type="radio" name="D" value="4" <?php if ($button4 == '4') echo 'checked="checked"'; ?>>40%
<input type="radio" name="D" value="5" <?php if ($button4 == '5') echo 'checked="checked"'; ?>>50%
<input type="radio" name="D" value="6" <?php if ($button4 == '6') echo 'checked="checked"'; ?>>60%
<input type="radio" name="D" value="7" <?php if ($button4 == '7') echo 'checked="checked"'; ?>>70%
<input type="radio" name="D" value="8" <?php if ($button4 == '8') echo 'checked="checked"'; ?>>80%
<input type="radio" name="D" value="9" <?php if ($button4 == '9') echo 'checked="checked"'; ?>>90%
<input type="radio" name="D" value="10" <?php if ($button4 == '10') echo 'checked="checked"'; ?>>99%
<input type="radio" name="D" value="11" <?php if ($button4 == '11') echo 'checked="checked"'; ?>>nvt<br>
Graag in het vervolg bij code, [code] [/code] tags gebruiken.[/modedit]
Gewijzigd op 05/09/2013 12:06:37 door Bas IJzelendoorn
(Edit: bij deze ondertussen aangepast...)
--------
- Dus, de tweede set radio buttons ( name="D" ) moet ingekort worden op basis van wat de gebruiker invult in de eerste set radio buttons ( name="B" ).
Juist?
- Wil je dat in real time, met javascript; of wil je dit met php genereren, na een submit?
Verder staat die value="11" mij niet aan. Ik zou daar 0 of -1 van maken. Maar dat zien we dan wel. En vul die percentages gewoon in, in die value. Geen reden om dat te coderen.
Gewijzigd op 05/09/2013 12:30:48 door Kris Peeters
Doormiddel van de waardes op te tellen zou kunnen uitrekenen of de waarde hoger zijn dan 100. Als de waardes hoger uit komen disable je de mogelijkheid in het formulier.
stel je hebt een fruitmand en je zegt in de eerste selectie voor 40% is die gevuld met appels
met de tweede selectie zegje hij is voor 30 procent gevuld met peren, de sommatie is dan in ieder geval geen 100% maar meer dan 100 mag in iedergeval niet voor elk scriptje zit nog een ander scriptje met een selectie balkje voor apels peren enz
in real time, met javascript; of met php, na een submit?
Liefst wil ik dat met PHP als dat mogelijk is 11 had ik gekozen idd ivm met niet van toepassing idd niet handig helemaal mee eens kris
Code (php)
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
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
<?php
$values = array(10, 20, 30, 40, 50, 60, 70, 80, 90, 99, -1);
$button2 = isset($_GET['B']) ? (int) $_GET['B'] : 0 ;
$button4 = isset($_GET['D']) ? (int) $_GET['D'] : 0 ;
$radios = '';
if (!isset($_GET['B'])) {
// nog geen eerdere post
$radios = radio($values, 'B', 'nvt', $button2);
}
elseif (!isset($_GET['D'])) {
// dus er is al een eerste post geweest, maar nog geen tweede
$radios = radio($values, 'B', 'nvt', $button2) . '<br>' . PHP_EOL . radio($values, 'D', 'nvt', $button4, (100 - $button2));
}
else {
// beide buttons ingevuld. Hier kan je dus beginnen verwerken
echo 'Na de tweede submit<br>';
echo 'button2: ' . $button2 . '<br>button4: ' . $button4;
}
echo '<form action="">' . $radios . ' <br><input type="submit" value="GO"> </form>';
echo '<a href="?">Reset alles</a>';
function radio($values, $name, $void_caption, $current, $max=0) {
$result = '';
foreach ($values as $key=>$value) {
if ($max > 0 && $value > $max) {
continue;
}
$result .= sprintf(
'<input type="radio" name="%s" value="%d"%s> %s ',
$name,
$value,
($value === $current ? ' checked="checked"' : ''),
($value === -1 ? $void_caption : $value .'%')
);
}
return $result;
}
?>
$values = array(10, 20, 30, 40, 50, 60, 70, 80, 90, 99, -1);
$button2 = isset($_GET['B']) ? (int) $_GET['B'] : 0 ;
$button4 = isset($_GET['D']) ? (int) $_GET['D'] : 0 ;
$radios = '';
if (!isset($_GET['B'])) {
// nog geen eerdere post
$radios = radio($values, 'B', 'nvt', $button2);
}
elseif (!isset($_GET['D'])) {
// dus er is al een eerste post geweest, maar nog geen tweede
$radios = radio($values, 'B', 'nvt', $button2) . '<br>' . PHP_EOL . radio($values, 'D', 'nvt', $button4, (100 - $button2));
}
else {
// beide buttons ingevuld. Hier kan je dus beginnen verwerken
echo 'Na de tweede submit<br>';
echo 'button2: ' . $button2 . '<br>button4: ' . $button4;
}
echo '<form action="">' . $radios . ' <br><input type="submit" value="GO"> </form>';
echo '<a href="?">Reset alles</a>';
function radio($values, $name, $void_caption, $current, $max=0) {
$result = '';
foreach ($values as $key=>$value) {
if ($max > 0 && $value > $max) {
continue;
}
$result .= sprintf(
'<input type="radio" name="%s" value="%d"%s> %s ',
$name,
$value,
($value === $current ? ' checked="checked"' : ''),
($value === -1 ? $void_caption : $value .'%')
);
}
return $result;
}
?>
nu moet ik alleen nog mijn code voor de vraag er tussen voegen
<code>
<select name="A">
<option name="A" value="1" >Plan</option>
<option name="A" value="2" >Do</option>
<option name="A" value="3" >Check</option>
<option name="A" value="4" >Act</option>
<option name="A" value="5" >Feedback</option>
</select>
</code>
Vierkante haakjes; UBB-code
Heb je hier nog een vraag? Nog iets dat niet werkt?
Nu, ik heb nog een opmerking. een <option> heeft geen name="". De name moet je enkel aan de <select> geven.
2 puntje rest mij nog
1) de selectie perpecentage vooraf middels een option
ofwel (appels, peren, bananen, kersen) dan het percentage middel radiobuttons en dan de tweede vraag.
2) daarnaast de mogelijkheid dat de selectie net als hoe ik hem omslachtig en niet geheel correct had geprogrammeerd de vorige invoer ophaalt uit de database
dat laaste is vooral handig zodat er bij meerdere vragen alleen een mutate kan worden gegenereeerd en de gebruiker vooraf kan zien wat hij/zij al eens heeft ingevoerd.
Alvast bedankt waardeer de hulp enorm
Alvast bedankt