8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je réalise un système de vote (like, dislike) en ASP sur des questions / réponses des clients.
J'aimerais donner la possibilité de liker ou disliker une réponse. Mon système de vote je l'ai réalisé en php et ça marche très bien. Mais je n'arrive pas à le traduire en ASP. Je ne maîtrise pas tous les aspects de l'ASP mais je comprends les bases.
Je suis bloqué lors du clic sur le bouton like ou dislike et je ne comprends pas l'origine du problème.
Je vous montre le code ci-dessous pour quelqu'un puisse regarder et m'aider svp.

Merci par avance !


// Partie requête SQL
SQL="select reponse_id, "
SQL=SQL&"reponse_message, "
SQL=SQL&"reponse_date, "
SQL=SQL&"client_pseudo "
SQL=SQL&"FROM reponse "
SQL=SQL&"ORDER BY reponse_date DESC"
set rs=conn.execute(SQL)
 
if not rs.eof then 
       do while not rs.eof


// Partie HTML
<div class="vote"  id="<%=rs("reponse_id")%>">
	<div class="vote_btn">
               <div class="btn_like"><img src="like.jpg" alt="like"></div><span class="votes_like">0</span>
	</div>
        <div class="vote_btn">
               <div class="btn_dislike"><img src="dislike.jpg" alt="dislike"></div><span class="votes_dislike">0</span>
	</div>
</div>


     rs.movenext
     loop
end if


// code js final
$(document).ready(function() {
    $.each($('.vote'), function () {
        var id = $(this).attr("id");
        post_d = {'id': id, 'vote': 'fetch'};
 
        $.post('vote.asp', post_d, function (response) {
            $('#' + id + ' .votes_like').text(response.vote_like);
            $('#' + id + ' .votes_dislike').text(response.vote_dislike);
        }, 'json');
    });
 
    $(".vote .vote_btn").click(function (e) {
        var click_button = $(this).children().attr('class');
        var id = $(this).parent().attr("id");
 
        if (click_button === 'btn_dislike') {
            post_d = {'id': id, 'vote': 'dislike'};
 
            $.post('vote.asp', post_d, function (data) {
               var $votes = $('#' + id + ' .votes_dislike');
                var num = parseInt($votes.text(), 10);
                $votes.text(num + 1);
            }).fail(function (err) {
                alert(err.statusText);
            });
        } else if (click_button === 'btn_like') {
            post_d = {'id': id, 'vote': 'like'};
 
            $.post('vote.asp', post_d, function (data) {
               var $votes = $('#' + id + ' .votes_like');
                var num = parseInt($votes.text(), 10);
                $votes.text(num + 1);
            }).fail(function (err) {
                alert(err.statusText);
            });
        }
    });
});


// Partie vote.asp
       if request.Form("vote")<>"" and request.Form("id")<>"" then
		Dim vote_type 
		Dim reponse_id
 
		vote_type = request.Form("vote") 
		reponse_id = request.Form("id")
 
		if not isEmpty(Request.ServerVariables("HTTP_X_REQUESTED_WITH")) and Lcase(Request.ServerVariables("HTTP_X_REQUESTED_WITH")) =                                                "xmlhttprequest" then
			Response.End 
		end if
 
		SQL="SELECT COUNT(*) AS nbr "
		SQL=SQL&"FROM vote "
		SQL=SQL&"WHERE " 
		SQL=SQL&"reponse_id = '"&reponse_id&"' "
		set rs = conn.execute(SQL)
 
		if not rs.eof then
			select case vote_type
				case "like"
					if rs("nbr") >= 1 then
						response.status="500 Vous pouvez voter qu'une seule fois !"
         				        Response.End
					else 
						if vote_type = "like" then
							vote_like = 1
						else
							vote_like = 0	
						end if
 
						SQL="INSERT INTO vote (vote_like, vote_dislike, reponse_id) VALUES ('"& vote_like &"', '"& vote_dislike &"', '"& reponse_id &"')"	
						conn.execute(SQL)
					end if		
				case "dislike"
					if rs("nbr") >= 1 then
						response.status="500 Vous pouvez voter qu'une seule fois !"
         				        Response.End
					else 
						if vote_type = "dislike" then
							vote_dislike = 1
						else
							vote_dislike = 0
						end if
 
						SQL="INSERT INTO vote (vote_like, vote_dislike, reponse_id) VALUES ('"& vote_like &"', '"& vote_dislike &"', '"& reponse_id &"')"	
						conn.execute(SQL)
					end if	
				case "fetch"
                	SQL="SELECT "
                	SQL=SQL&"SUM (vote_like) as vote_like "
                	SQL=SQL&"SUM (vote_dislike) as vote_dislike "
                	SQL=SQL&"FROM vote "
                	SQL=SQL&"WHERE "
                	SQL=SQL&"reponse_id = '"&reponse_id&"' "
                	set rs1 = conn.execute(SQL)
 
                	if not rs1.eof then
                		if rs1("vote_like") then
                			vote_like = rs1("vote_like")
                		else 
                			vote_like = 0
                		end if
 
                		if rs1("vote_dislike") then
                			vote_dislike = rs1("vote_dislike")
                		else 
                			vote_dislike = 0	
                		end if	
 
                		dim env = array('vote_like'='vote_like', 'vote_dislike'='vote_dislike')
                                response.write json_encode(env)
                	end if
				rs1.close
				set rs1=nothing	
			end select
		end if
		rs.close
		set rs=nothing	
	end if

Modifié par dinolam (06 Jan 2017 - 09:32)