簡單ajax+asp投票系統源碼

來源:互聯網
上載者:User

/*
 *--------------------------------------------------------------------
 *
 *建立一個XMLHttp執行個體
 *return object 成功建立返回一個XMLHttp對象執行個體,否則返回false
 *
 *--------------------------------------------------------------------
 */
 function CreateAjax()
 {
    var XMLHttp;
    try
    {
        XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");   //IE的建立方式
    }
    catch(e)
    {
        try
        {
            XMLHttp = new XMLHttpRequest();     //FF等瀏覽器的建立方式
        }
        catch(e)
        {
            XMLHttp = false;        //建立失敗,返回false
        }
    }
    return XMLHttp;     //返回XMLHttp執行個體
 }

/*
 *-------------------------------------------------------------------------
 *
 *函數名:Dig(id)
 *功能:投票
 *參數:id
 *      1、id:文章的id
 *
 *-------------------------------------------------------------------------
 */
function Dig(id)
{
 _xmlhttp = CreateAjax();
 var url = 'service.asp?id='+id+'&n='+Math.random()+'';  //這裡添加了一個參數n,表示為一個隨機數,以避免瀏覽器緩衝
 if(_xmlhttp)    //判斷XmlHttp是否建立成功
    {
        var content = document.getElementById("dig"+id);     
  var dig = document.getElementById(id);     //擷取頁面中ID為文章Id的節點
        _xmlhttp.open('GET',url,true);
        _xmlhttp.onreadystatechange=function()
        {
            if(_xmlhttp.readyState == 4)        //用戶端完成請求
            {
                if(_xmlhttp.status == 200)      //服務端完成處理並返回資料
                {
                    var ResponseText = unescape(_xmlhttp.responseText);   //擷取service的顯示字元
     var r=ResponseText.split(",");        //如果已經投票、service會顯示Dig,投票數,這裡分割字元用於顯示錯誤和重設計數
                    if(r[0] == "Dig" )   //service返回了錯誤資訊
                    {
                        alert("您已經投過票了!");
                        dig.innerHTML=r[1];
                    }
     //沒有找到文章
                    else if(ResponseText == "NoData")
     {
      alert("參數錯誤!"); 
     }
     else
                    {
      //伺服器返回了成功,重設投票數
      dig.innerHTML=ResponseText;
      alert("投票成功");
      //將投一票改成查看文章的按鈕
      content.innerHTML='<a href="shownew.asp?id=' + id + '">查看</a>';
                    }
                }
                else    //伺服器出現異常
                {
                    alert("伺服器返回異常!");
                    top.location.href='index.asp';
                }
            }
            else    //請求未完成時的提示資訊
            {
                dig.innerHTML='<img src="images/Loading.gif">';
            }
        }
        _xmlhttp.send(null);  //向伺服器發送請求,因為是get請求,會直接附在URL後面,所以這裡括弧中的資料為null,IE中也可以不寫,但FF就必須加上null,否則會發送失敗。
    }
    else    //建立未成功
    {
        alert("您的瀏覽器不支援或未啟用 XMLHttp!");
    }
}

上面是xmlhttp執行個體的資料無重新整理處理,下面是asp資料處理並返回資料

<!--#include File="conn.asp"-->
<%
Dim id
Dim Rs,Sql
id = Replace(Trim(Request.QueryString("id")),"'","")
If Session("id"&id)<>"" Then
 Set Rs = Server.CreateObject("ADODB.Recordset")
 Sql = "Select * From News Where id="&id
 Rs.Open Sql,Conn,3,3
 If Rs.Eof And Rs.Bof Then
  Response.Write("NoData")
 Else
  Response.Write("Dig")
  Response.Write(",")
  Response.Write(Rs("Dig"))
 End If
Else
 Set Rs = Server.CreateObject("ADODB.Recordset")
 Sql = "Select * From News Where id="&id
 Rs.Open Sql,Conn,3,3
 If Rs.Eof And Rs.Bof Then
  Response.Write("NoData")
 Else
  Dim Dig
  Dig =Rs("Dig")
  Dig = Dig + 1
  Rs("Dig") = Dig
  Rs.Update
  Rs.Close
  Set Rs = Nothing
  Session("id"&id) = id
  Response.Write(Dig)
 End If
End If
%>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.