Ik heb een werkend php-script voor een poll, alleen nu wil ik dit iets naar eigen smaak aanpassen, alleen dit lukt niet echt.
De poll bestaat uit de volgende onderdelen:
test.php
php_poll.php
poll_data.php in dit bestand wordt de data opgeslagen
en een directory vote wat er verder eigenlijk niet toe doet
Wat wil ik veranderen?
Ik wil in plaats van die radio buttons een drop down menu hebben met 10 geselecteerd. Iets als dit dus, alleen moet dit verwerkt worden in de php file:
Verder moet je alleen "Bedankt voor je stem!" te zien krijgen als je ook echt gestemd hebt en niet als je alleen maar naar de resultaten wilt kijken.
En ten slotte mag je niet meer dan 1x stemmen.
Als je gestemd hebt, moet je automatisch de resultaten te zien krijgen.
Een preview is hier te vinden.
De poll bestaat uit de volgende onderdelen:
test.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| <HTML> <HEAD> <TITLE>Poll</TITLE> </HEAD> <BODY> <TABLE BORDER="1" WIDTH=148 BGCOLOR="#FFFFCC" CELLPADDING="3"> <TR><TD BGCOLOR="#006633"><FONT COLOR="#FFCC00"> <CENTER><B>Games</B></CENTER></FONT></TD></TR> <TR><TD> <?php require "php_poll.php"; ?> </BODY> </HTML> |
php_poll.php
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| <?php $RESULT_FILE_NAME = "poll_data.php"; $QUESTION = "Geef een cijfer voor dit spel."; $ANSWER = array("10", "9", "8", "7", "6", "5", "4", "3", "2", "1"); $IMG_DIR_URL = "./vote"; $REVOTE_TIME = 3600; if (! $vote && ! $result) { echo "<FORM METHOD=\"POST\">\n"; echo "<TABLE WIDTH=100% BORDER=1><TR><TD><TABLE WIDTH=\"100%\" BORDER=0>\n"; echo "<TR><TH>$QUESTION</TH></TR>\n"; while (list($key, $val) = each($ANSWER)) { echo "<TR><TD align=\"center\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n"; } echo "<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"vote\" VALUE=\" Stem \"></TD></TR>\n"; echo "<TR><TD align=\"center\"><INPUT TYPE=\"Submit\" NAME=\"result\" VALUE=\"Resultaten\"></TD></TR>\n"; echo "</TABLE></TD></TR></TABLE></FORM>"; } else { $file_array = file($RESULT_FILE_NAME); // or error("Can not open \$RESULT_FILE_NAME"); if ($answer < count($ANSWER) && $vote) { if (count($file_array) < count($ANSWER)) { $file_array = array("0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n", "0\n"); } $old_answer = $file_array[$answer]; $old_answer = preg_replace("/\n\r*/", "", $old_answer); $file_array[$answer] = ($old_answer + 1)."\n"; $file = join('', $file_array); $fp = fopen("$RESULT_FILE_NAME", "w"); //or error("Can not write \$RESULT_FILE_NAME"); flock($fp, 1); fputs($fp, $file); flock($fp, 3); fclose($fp); } while (list($key, $val) = each($file_array)) { $total += $val; } echo "<h3>Resultaten :</h3>"; echo "<TABLE CELLSPACING=2 CELLPADDING=1 BORDER=1>"; echo "<tr><th>What</th><th>Percentage</th><th>Votes</th></tr>"; while (list($key, $val) = each($ANSWER)) { $percent = $file_array[$key] * 100 / $total; $percent_int = floor($percent); $percent_float = number_format($percent, 1); $tp += $percent_float; echo "<tr><td> $ANSWER[$key] </td><td>[img]\"$IMG_DIR_URL/vote_left.gif\"><img[/img][img]\"$IMG_DIR_URL/vote_right.gif\">[/img]<td>$file_array[$key]</td></tr>"; } echo "</TABLE><br>"; echo "Bedankt voor je stem!"; } ?> |
poll_data.php in dit bestand wordt de data opgeslagen
en een directory vote wat er verder eigenlijk niet toe doet
Wat wil ik veranderen?
Ik wil in plaats van die radio buttons een drop down menu hebben met 10 geselecteerd. Iets als dit dus, alleen moet dit verwerkt worden in de php file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <select size="1"> <option selected>10</option> <option>9</option> <option>8</option> <option>7</option> <option>6</option> <option>5</option> <option>4</option> <option>3</option> <option>2</option> <option>1</option> </select> |
Verder moet je alleen "Bedankt voor je stem!" te zien krijgen als je ook echt gestemd hebt en niet als je alleen maar naar de resultaten wilt kijken.
En ten slotte mag je niet meer dan 1x stemmen.
Als je gestemd hebt, moet je automatisch de resultaten te zien krijgen.
Een preview is hier te vinden.
Before me there was many, after me there will be none. I'm the one!