[PHP] Poll zonder Mysql

Pagina: 1
Acties:
  • 49 views sinds 30-01-2008

  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
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:
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!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En het probleem is?

Je hebt nu een enorme lap code geplaatst.
Je hebt gezegd wat je wil bereiken.

Nu mis ik nog de methodiek die je wil gebruiken, wat je hebt geprobeerd, waar het fout loopt, etc.

Of ga je er van uit dat wij hier met alle liefde jouw code gaan aanpassen?

[ Voor 100% gewijzigd door gorgi_19 op 05-06-2003 00:58 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • GambitRS
  • Registratie: Juni 2001
  • Laatst online: 13-06-2013

GambitRS

w00t

Wil je soms niet opzoeken hoe je een drop down menu maakt? Zoek anders op google ofzo, daar is het ook te vinden. Over die text: In een form heb je een knop (de submit knop)die een andere pagina laadt. Action= roept die pagina aan. In die pagina moet je dus na het verwerken van de data "bedankt" ofzo laten zien. Dat doe je in php met bijv echo "bedankt";
Over dat 1 keer voten: sla de IPs op en controleer iedere niewe poster met je opgeslagen IPs

[ Voor 65% gewijzigd door GambitRS op 05-06-2003 01:02 ]

MechWarrior || Monsters Game


  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Voor dit:
PHP:
1
echo "<TR><TD align=\"center\"><INPUT TYPE=\"radio\" NAME=\"answer\" VALUE=\"$key\"> $val</TD></TR>\n";


had ik dit bedacht, maar nu krijg ik 10 enkele drop-down menus
PHP:
1
echo "<TR><TD align=\"center\"><SELECT NAME=\"answer\"><OPTION VALUE=\"$key\"> $val</OPTION></SELECT></TD></TR>\n";

Before me there was many, after me there will be none. I'm the one!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

:| Heb je wel enig idee wat je aan het doen bent?

Je moet ook niet de dropdown in een loop gooien, maar de keuzewaarden in een loop gooien.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • bigben04
  • Registratie: December 2001
  • Laatst online: 05-08 22:33
PHP:
1
2
3
4
5
6
7
8
echo "<TR><TD align=\"center\"><SELECT NAME=\"answer\">";

while (each blabla statement)
{
        echo "<OPTION VALUE=\"$key\"> $val</OPTION>";
}

echo "</SELECT></TD></TR>\n";

Zo krijg je de 10 entries in 1 drop-down box. Voor de rest mag je wel eens wat manuals gaan lezen.

[ Voor 46% gewijzigd door bigben04 op 05-06-2003 01:20 ]


  • mrbombastic
  • Registratie: Oktober 2002
  • Laatst online: 13-02-2025
Aight, hartstikke bedankt. Overigens had ik dit nog nooit gezien, maar ik heb inderdaad nog niet zo heel veel manuals doorgelezen.

Before me there was many, after me there will be none. I'm the one!


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

"ik heb deze code, het lukt mij niet kan iemand anders het even voor mij aanpassen"
Nee, zulke vragen doen wij niet in P&W. Naast een manual lezen moet je dus zeer zeker ook eens onze FAQ lezen.

Dank.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.