Beberapa bulan yang lalu, saya melihat artikel yang ditulis oleh seorang netizen lshdic menggunakan JS+VML "Program lengkap untuk membuat bagan pemungutan suara kolom tiga dimensi menggunakan Vml".
Saya rasa metode ini sangat bagus karena dapat menghasilkan grafik statistik tanpa menggunakan gambar. Sekarang mari kita implementasi program ini menggunakan ASP.
Persiapan: Gunakan ACCESS untuk membuat database MDB bernama vote.mdb, dan buat dua tabel berikut dalam database:
Kemudian kita membuat file conn.asp yang terhubung ke database sesuai dengan konvensi pengembangan ASP.
<%
'sambungan.asp
Setel koneksi=Server.CreateObject("ADODB.Connection")
samb.Buka "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("vote.mdb")
%>
Tampilkan daftar proyek voting, karena yang ingin kita buat adalah sistem voting multi proyek vote_list.asp
<!--#include file="conn.asp"-->
<html>
<kepala>
<title>Daftar item pemungutan suara</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<link href="../images/main.css" rel="stylesheet" type="text/css">
</kepala>
<%
set rs=conn.execute("pilih * dari urutan judul suara berdasarkan voteid desc")
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: runtuh" cellpadding = "0" bgcolor = "#ffffff" bordercolor = "#000000" lebar = 100%>
<tr>
<td bgcolor="#EFEFEF">Semua daftar pemungutan suara</td>
</tr>
<%lakukan selagi belum rs.eof%>
<tr>
<td>Nomor:<font color="#FF0000"><%=rs("voteid")%> )%>" target="_blank"><%=rs("votetitle")%>
</a>(<%=rs("waktu")%>)</td>
</tr>
<%rs.movenext
lingkaran
rs.tutup
atur rs=tidak ada%>
</tabel>
</tubuh>
</html>
Halaman tampilan suara vote_show.asp
<%jika permintaan("voteid")="" maka
respon.tulis "Parameter tidak ditentukan."
respon.Akhir()
berakhir jika%>
<!--#include file="conn.asp"-->
<html>
<kepala>
<title>Lihat hasil</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<GAYA>
td{ukuran font:12px}
badan{ukuran font:12px}
v:*{behavior:url(#default#VML);} //v dideklarasikan di sini sebagai variabel publik VML
</GAYA>
<link href="../images/main.css" rel="stylesheet" type="text/css">
</kepala>
<%
redupkan suara pemilih
voteid=permintaan("voteid")
set rs=conn.execute("pilih hitungan dari suara,votetitle di mana votetitle.voteid="&voteid&" dan vote.voteid=votetitle.voteid diurutkan berdasarkan id")
aku aku aku=0
lakukan selagi tidak rs.eof
ii=ii+1
jika ii=1 maka
ceocio=trim(rs("hitungan"))
ceocio1=trim("array1["&iii&"]")
kalau tidak
ceocio=trim(ceocio&","&rs("hitungan"))
ceocio1=trim(ceocio1&"+array1["&iii&"]")
berakhir jika
iii=iii+1
rs.movenext
lingkaran
rs.tutup
atur rs=tidak ada
'respons.tulis ii
'respons.tulis ceocio1
%>
<skrip>
array1=new Array(<%=ceocio%>) //Nomor suara berbeda
allstr=<%=ceocio1%>
//peringatan(semuastr)
//allstr=array1[0]+array1[1]+array1[2]+array1[3]+array1[4]+array1[5] //Dapatkan jumlah totalnya
untuk(i=0;i<=<%=(ii-1)%>;i++){
mathstr=Math.round(100/(allstr/array1[i])) //Cari persentasenya, 100/(jumlah/tunggal)
document.write ("<v:rect fillcolor='lime' style='width:20;color:navy;height:"+500*<%=(ii-1)%>/(1000/mathstr)+"' ><br> %"+mathstr+"<br>"+array1[i]+"人<v:Extrusion back depth='15pt' on='true'/></v:rect>")
}
</skrip>
<%
voteid=permintaan("voteid")
set rs=conn.execute("pilih * dari suara,votetitle di mana votetitle.voteid="&voteid&" dan vote.voteid=votetitle.voteid diurutkan berdasarkan id")
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: collaps" cellpadding = "2" bgcolor = "#ffffff" bordercolor = "#000000" lebar = 100%>
<tr>
<td bgcolor="#EFEFEF">Menemukan hasil tentang:<font color="#FF0000"><%=rs("votetitle")%></font>:<br>
Sebanyak<b><font color="#FF0000"><%=rs("total")%></font></b> berpartisipasi dalam survei ini<br>
(<%=rs("time")%>sampai<%=tanggal%>)</td>
</tr>
<%lakukan selagi tidak rs.eof
redup
saya=saya+1%>
<tr>
<td>Pilihan<%=i%>:<%=rs("title")%> <font color="#FF0000"><%=rs("count")%>Orang< /font></td>
</tr>
<%rs.movenext
lingkaran
rs.tutup
atur rs=tidak ada%>
<tr>
<td> </td>
</tr>
</tabel>
<br>
<a href="vote_list.asp">Lihat suara sebelumnya</a> <br>
<a href="vote.asp?voteid=<%=request("voteid")%>">Pilih proyek ini</a>
</tubuh>
</html>
pilih.asp
<!--#include file="conn.asp"-->
<%jika permintaan("voteid")="" maka
set rs=conn.execute("pilih 1 voteid teratas dari urutan votetitle berdasarkan voteid desc")
voteid=rs("voteid")
rs.tutup
atur rs=tidak ada
kalau tidak
voteid=permintaan("voteid")
berakhir jika%>
<html>
<kepala>
<title>Dokumen Tanpa Judul</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<link href="style.css" rel="stylesheet" type="text/css">
</kepala>
<tubuh>
<%
jika permintaan("tindakan")="pilih" maka
'Tambahkan ","&request("voteid")",,"agar tidak membingungkan suara dengan id 1 dan suara dengan id 11
jika instr(request.cookies("vote"),",,"&request("voteid")&",")=0 maka
kalau tidak
respon.tulis "Anda sudah memilih"
respon.akhir
berakhir jika
sql="perbarui [suara] setel jumlah=hitung+1 di mana id="&request("nilai suara")
samb.execute(sql)
sql="perbarui [votetitle] atur total=total+1 di mana voteid="&request("voteid")
samb.execute(sql)
'Tulis masa berlaku cookie
Response.Cookies("vote").Kedaluwarsa=Tanggal+1
'Rekam semua opsi yang dipilih dalam cookie, dipisahkan dengan ','.
Respon.Cookies("vote")=","&Request.Cookies("vote")&","&Request("voteid")&","
voteid=permintaan("voteid")
'Lanjutkan ke dasar
respon.redirect "vote_show.asp?voteid="&voteid
berakhir jika
%>
<%
'redupkan voteid
'voteid=permintaan("voteid")
set rs=conn.execute("pilih * dari suara,votetitle di mana votetitle.voteid="&voteid&" dan vote.voteid=votetitle.voteid diurutkan berdasarkan id")
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: runtuh" cellpadding = "0" bgcolor = "#ffffff" bordercolor = "#C0C0C0" lebar = 100%>
<tr>
<td colspan="2" bgcolor="#EFEFEF">Investigasi: <%=rs("votetitle")%>(<%=rs("time")%>)</td>
</tr><form name="form1" method="post" action="vote.asp?action=vote&voteid=<%=voteid%>">
<%lakukan selagi tidak rs.eof
redup
saya=saya+1%>
<tr>
<td colspan="2">
<input type="radio" name="votevalue" value="<%=rs("id")%>" <%if i=1 maka%>dicentang<%end if%>>
<%=rs("judul")%>
</td>
</tr>
<%rs.movenext
lingkaran
rs.tutup
atur rs=tidak ada%>
<tr>
<td colspan="2">
<%if instr(request.cookies("vote"),,","&voteid&",")=0 maka%>
<input type="submit" name="Submit" value="Pilih"></form>
<%lainnya%>
<font color="#FF0000">Anda telah memilih</font>
<%akhir jika%></td>
</tr>
</tabel>
<br>
<a href="vote_list.asp">Lihat suara sebelumnya</a> <br>
<a href="vote_show.asp?voteid=<%=voteid%>">Lihat hasil pemungutan suara ini</a>
</tubuh>
</html>
Laman manajemen backend admin_vote_list.asp
<!--#include file="conn.asp"-->
<%'Tambahkan hak administrator di sini. Demi kenyamanan semua orang, saya akan langsung mengizinkan masuk tanpa verifikasi%>
<html>
<kepala>
<title>Daftar item pemungutan suara</title>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<link href="style.css" rel="stylesheet" type="text/css">
</kepala>
<tubuh>
<%
'Hapus modul
tindakan redup
tindakan=permintaan("tindakan")
jika tindakan = "del" maka
DimStrSQL1,StrSQL2
StrSQL1="hapus dari suara di mana voteid="&request("voteid")
samb.Jalankan StrSQL1
StrSQL2="hapus dari votetitle di mana voteid="&request("voteid")
samb.Jalankan StrSQL2
respon.Redirect "?"
berakhir jika
'Ubah modul
'////////////////////////
'Ubah formulir
jika tindakan = "tambahkan" maka
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: runtuh" cellpadding = "0" bgcolor = "#ffffff" bordercolor = "#C0C0C0" lebar = 100%>
<tr>
<td bgcolor="#EFEFEF"><pusat>
Tambahkan jajak pendapat baru</center></td>
</tr>
<tr>
<td>Silakan masukkan jumlah opsi yang diperlukan untuk jajak pendapat ini. </td>
</tr>
<tr>
<td><form name="form1" method="post" action="?action=add1">
<pilih nama="angka">
<%untuk i1=2 hingga 10%>
<pilihan nilai="<%=i1%>"><%=i1%></option>
<%berikutnya%>
</pilih>
<input type="kirim" nama="Kirim" value="Kirim">
</form></td>
</tr>
</tabel>
<%
berakhir jika
jika tindakan = "tambahkan1" maka
angka=permintaan("angka")
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: runtuh" cellpadding = "0" bgcolor = "#ffffff" bordercolor = "#C0C0C0" lebar = 100%>
<tr>
<td bgcolor="#EFEFEF"><pusat>
Tambahkan jajak pendapat baru</center></td>
</tr>
<tr>
<td>Silakan masukkan detail yang diperlukan untuk jajak pendapat ini. </td>
</tr>
<tr>
<td><form name="form2" method="post" action="?action=add2">
nama pemungutan suara
<input type="teks" nama="votetitle">
<br>
<%untuk i2=1 hingga angka%>
Opsi<%=i2%><input type="text" name="<%=i2%>"><br>
<%berikutnya%>
<input type="hidden" name="num" value="<%=request("num")%>">
<input type="kirim" nama="Kirim2" nilai="Kirim">
<input type="reset" name="Kirim3" value="Reset">
</form></td>
</tr>
</tabel>
<%akhir jika
jika tindakan = "tambahkan2" maka
Setel rs=Server.CreateObject("ADODB.Recordset")
sql="PILIH * DARI judul suara"
rs.Buka sql, samb., 1,3
rs.Tambahkanbaru
rs("votetitle")=permintaan("votetitle")
rs("waktu")=tanggal()
rs.Perbarui
rs.Tutup
set rs=conn.execute("pilih 1 voteid teratas dari urutan votetitle berdasarkan voteid desc")
voteid=rs("voteid")
rs.tutup
atur rs=tidak ada
'///////////////
'//////////////siklus
angka=permintaan("angka")
untuk i3=1 sampai angka
Setel rs=Server.CreateObject("ADODB.Recordset")
sql="PILIH * DARI suara"
rs.Buka sql, samb., 1,3
rs.Tambahkanbaru
rs("judul")=permintaan(i3)
rs("voteid")=voteid
rs.Perbarui
rs.Tutup
Berikutnya
'/////////////Akhir perulangan
Setel rs=Tidak Ada
respon.Tulis "<a href=admin_vote_list.asp>Berhasil ditambahkan, silakan kembali</a>"
berakhir jika
'Akhir dari bentuk modifikasi
'///////////////////////
'Ubah kode eksekusi
'Akhir dari modifikasi kode eksekusi
%>
<%jika tindakan="" lalu
set rs=conn.execute("pilih * dari urutan judul suara berdasarkan voteid desc")
%>
<tabel border=1 Cellspacing = "0" style = "border-collapse: runtuh" cellpadding = "0" bgcolor = "#ffffff" bordercolor = "#C0C0C0" lebar = 100%>
<tr>
<td colspan="2" bgcolor="#EFEFEF">Semua daftar pemungutan suara</td>
</tr>
<%lakukan selagi belum rs.eof%>
<tr>
<td width="44%">Nomor: <font color="#FF0000"><%=rs("voteid")%></font><a href="vote.asp?voteid=<% =rs("voteid")%>" target="_blank"><%=rs("votetitle")%>
</a>(<%=rs("waktu")%>)</td>
<td width="50%">【<a href="?action=del&voteid=<%=rs("voteid")%>">Hapus</a>】</td>
</tr>
<%rs.movenext
lingkaran
rs.tutup
atur rs=tidak ada%>
<tr>
<td colspan="2">[<a href="?action=add">Tambahkan jajak pendapat baru</a>]</td>
</tr>
</tabel>
</tubuh>
</html>
<%end if%>
Efek tampilan akhir adalah sebagai berikut: