|
Ankieta TAK/NIE
W tym artykule przedstawię w jaki sposób
można zrobić sondę typu tak/nie.
Tworzymy plik taknie.txt. Plik ten musimy
utworzyć w tym samym katalogu co ankieta. Po
edycji pliku w pierwszej linni wpisujemy
pytanie sondy. Poniżej cyfrę 0 (głosy na
tak) i niżej również 0 (głosy na nie)
czyli:
Czy umiesz PHP ?
0
0
Następnie tworzymy nowy plik sonda.php. W
pierwszej części zajmiemy się otworzeniem
pliku taknie.txt:
<?php
if (isset($ankieta) &&
($ankieta[0]=="tak" ||
$ankieta[0]=="nie")) {
$plik=fopen("taknie.txt","r")
or die("Nie mogę otworzyć pliku
taknie.txt! ");
$tytul=trim(fgets($plik,255));
$tak=trim(fgets($plik,255));
$nie=trim(fgets($plik,255));
fclose($plik);
$plik=fopen("taknie.txt","w")
or die("Nie mogę otworzyć pliku
taknie.txt! ");
flock($plik,2);
fwrite($plik,$tytul."\n");
if ($ankieta[0]=="tak") $tak++;
if ($ankieta[0]=="nie") $nie++;
fwrite($plik,$tak."\n");
fwrite($plik,$nie."\n");
flock($plik,1);
fclose($plik);
}
Nie będę opisywał każdej linijki bo dla
znających choć trochę PHP są to podstawowe
funkcje np. do tworzenia liczników itp.
Teraz ustawiamy kolory suwaków tak i nie:
$kolortak="green";
$kolornie="red";
$plik=fopen("taknie.txt","r")
or die("Nie mogę otworzyć pliku
taknie.txt! "); //jeżeli nie możesz
otworzyć pliku wyświetl alert
?>
Następnie wstawimy formularz sondy:
<FORM name="ankieta" method="POST"
action="index.php" target="_parent">
<TABLE border=0 cellpadding=0 cellspacing=0
style="border: solid 1px #000000;
padding-left:5px; padding-right:5px;
padding-top:2px; padding-bottom:2px">
<TR><TD bgcolor="#F4F2F2"
class="modul">
<? echo trim(fgets($plik,255)); ?>
</TD></TR><TR><TD class="modul">
<input type="radio" value="tak"
name="ankieta[]" checked onfocus=blur()>
TAK <input
type="radio" value="nie"
name="ankieta[]" onfocus=blur()>
NIE
</TD></TR>
<TR><TD bgcolor="#F4F2F2"
class="modul">
<input type="submit" onfocus=blur()
style="background-color: #F4F2F2;
font-family: Arial; font-size: 9px; width: 50;
height: 17" value="GŁOSUJ"></TD></TR>
</TABLE>
</FORM>
Teraz kolej na liczenie i grupowanie głosów:
<?php
$tak=trim(fgets($plik,255));
$nie=trim(fgets($plik,255));
$liczbatak=$tak; //musimy mięć liczbę głosów
na koniec
$liczbanie=$nie;
fclose($plik);
if ($tak!=0 || $nie!=0) {
//procentowo z dokładnością do 12 miejsc
po przecinku
$x=100/($tak+$nie);
$tak*=$x;
$nie*=$x;
//liczymy żeby dostać reszę po przecinku
$temptak=$tak-(int)$tak;
$tempnie=$nie-(int)$nie;
//a tu już zaokrąglamy liczby z np. 1.1
na 1.5 lub np. 3.7 na 3.5
if ($temptak!=0 && ($temptak > 0.5
|| $temptak < 0.5)) {settype($tak,integer);
$tak+=0.5;}
if ($tempnie!=0 && ($tempnie > 0.5
|| $tempnie < 0.5)) {settype($nie,integer);
$nie+=0.5;}
//tabelka z głosowaniem
echo "<TABLE border=0 width=300><TR
style=\"font-family:Arial;
font-size:11px\"><TD align=center>";
echo "Głosowano<font color=\"#000000\">
".($liczbatak+$liczbanie)."</font>";
if (($liczbatak + $liczbanie) > 1) {echo
" razy";} else {echo "
raz";}
echo ", w tym oddano:<br><font
color=\"red\">$liczbatak</font>
";
if ($liczbatak!=1) {echo " głosów";}
else {echo " głos";}
echo " na <B>TAK</B>, oraz
<font color=\"red\">$liczbanie</font>";
if ($liczbanie!=1) {echo " głosów";}
else {echo " głos";}
echo " na <B>NIE</B>.<BR><BR>";
echo "<TABLE style=\"border:solid
1px #666666; font-family:Arial;
font-size:10px\" border=0 cellspacing=0
cellpadding=0><TR>";
if ($tak!=0) {echo "<TD style=\"color:#000000\"
align=center bgcolor=".$kolortak."
width=".($tak*2).">".$tak."%</TD>";}
if ($nie!=0) {echo "<TD style=\"color:#000000\"
align=center bgcolor=".$kolornie."
width=".($nie*2).">".$nie."%</TD>";
echo "</tr></TABLE>";}
//słowny opis tabelki
echo "<TABLE border=0 cellpadding=0
cellspacing=0><tr style=\"font-family:Arial;
font-size:9px\">";
if ($tak!=0) {echo "<td width=".($tak*2)."
align=center>TAK</td>";}
if ($nie!=0) {echo "<td width=".($nie*2)."
align=center>NIE</td>";}
echo "</tr></table>";
echo "</TD></TR></TABLE>";
if ($tak==50) {echo "<br>Pół na pół
;)";} //tu wyświetl jeżeli głosy są
50/50
}
//jeżeli nikt nie zagłosował wyświetl
else {echo "Jeszcze nikt nie głosował";}
?>
Autor: LuGo
http://xklonos.4me.pl
<== WSTECZ
=
|