Ver Mensaje Individual
  #140 (permalink)  
Antiguo 29/12/2008, 15:30
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: FAQ's del foro de ASP

Valorar el trabajo de un usuario (haciendo algunos cambios podemos valorar un solo tema, video, etc..)

+ Campos de la tabla con los que trabajamos
- Usuario --> Texto / Nombre del usuario cuyo articulo ha sido puntuado
- Reconocimiento --> Numerico / Cantidad de puntos que tiene el usuario que intenta puntuar el articulo
- Kien_Reconoce --> Texto / Nombre de los usuarios que han puntuado el articulo


mostrartemas.asp

Código HTML:
<a id="<%=autonumerico_del_articulo%>" onclick="return false" href="./mostrartemas.asp">Reconocimiento</a>
<script type="text/javascript">
  Evento(document.getElementById('<%=autonumerico_del_articulo%>'),'click',function() {
      PuntarArticulo('<%=autor_articulo%>', '<%=nombre_usuario_da_puntos%>');
})    
</script> 
reconocimiento.asp

Código asp:
Ver original
  1. Dim usuapuntuar, usukpuntua, PuntosaOtorgar, reconocedores, kienson, i, otroReconocedor
  2. usuapuntuar = Request.QueryString("akien")
  3. usukpuntua = Request.QueryString("dkien")
  4.  
  5. SQL="Select Usuario, Reconocimiento FROM tabla WHERE Usuario = '"&usukpuntua&"'" ' Sacamos la puntuación que tiene el usuario que quiere puntar el articulo
  6.  
  7. cant_reconocimiento = CInt(rs1.Fields("Reconocimiento"))
  8.  
  9. ' ============= Puntos que puede otorgar el usuario que intenta puntuar el articulo, deacuerdo con su reconociemiento hasta el momento =============
  10. if cant_reconocimiento =< 9 Then
  11. PuntosaOtorgar = 1
  12. elseif cant_reconocimiento >= 10 and cant_reconocimiento =< 19 Then
  13. PuntosaOtorgar = 2
  14. elseif cant_reconocimiento >= 20 and cant_reconocimiento =< 29 Then
  15. PuntosaOtorgar = 3
  16. elseif cant_reconocimiento >= 30 and cant_reconocimiento =< 39 Then
  17. PuntosaOtorgar = 4
  18. elseif cant_reconocimiento >= 40 and cant_reconocimiento =< 49 Then
  19. PuntosaOtorgar = 5
  20. else
  21. PuntosaOtorgar = 6
  22. end if
  23. ' ===============================================
  24.  
  25. SQL="Select Usuario, Kien_Reconoce FROM tabla WHERE Usuario = '"&usuapuntuar&"'" ' Kienes le han otorgado puntos a este usuario
  26.  
  27. reconocedores = rs2.Fields("Kien_Reconoce")
  28.  
  29. if reconocedores <> "" Then ' Si no es el primer usuario en puntuar el tema
  30. kienson = Split(reconocedores, ",")
  31. For i = 0 To UBound(kienson)
  32. If kienson(i) = usukpuntua AND i =< 2 Then ' No hay 3 nuevos reconocedores entre la última vez que este usuario puntuó el articulo y ahora
  33. Response.Write usukpuntua & escape(", desde la última vez que reconociestes el esfuerzo de ") & usuapuntuar & escape(", nadie más se lo ha reconcido. Así que tendrás que esperar hasta que otro usuario lo haga.")
  34. Response.End ()
  35. Exit For
  36. End If
  37. Next
  38. otroReconocedor =  usukpuntua & "," & reconocedores
  39. else
  40. otroReconocedor =  usukpuntua
  41. end if
  42.  
  43. SQL="UPDATE tabla SET Reconocimiento = Reconocimiento + "&PuntosaOtorgar&" , Kien_Reconoce = '"&otroReconocedor&"'  WHERE Usuario = '"&usuapuntuar&"';"
  44. Response.Write usukpuntua & escape(", seguro que ") & usuapuntuar & escape(" te agradece el reconocimento que le acabas de dar por su esfuerzo.")
  45. Response.End ()
  46. %>


reconocimiento.js

Código javascript:
Ver original
  1. function creaAjax(){
  2.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  3.     var ajax = false;
  4.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  5.         try{
  6.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  7.         }
  8.         catch(e) {
  9.             ajax = false;
  10.         }
  11.     }
  12.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  13.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  14.     }
  15.     return ajax;
  16. }
  17.  
  18. function PuntarArticulo(ak, dk){
  19. var ajax=creaAjax();
  20. ajax.open ('GET', 'reconocimiento.asp?akien='+ak+'&dkien='+dk, true);
  21. ajax.onreadystatechange = function() {
  22.  
  23.     if (ajax==null){
  24.         alert ("Tu navegador web no soporta AJAX!");
  25.         return;
  26.     }
  27.  
  28.          if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  29.                                      
  30.          }
  31.          else if (ajax.readyState==4){
  32.                    if(ajax.status==200){
  33.                                             alert (unescape(ajax.responseText));
  34.                 return;
  35.                    }
  36.                    else if (ajax.status==404)
  37.                                              {
  38.                                             alert ("La dirección no existe");
  39.                 return;
  40.                                              }
  41.                                              else
  42.                                              {
  43.                                              alert ("Error: " + ajax.status);
  44.                 return;
  45.                                              }
  46.                                     }
  47.                   }
  48.          ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  49.          ajax.send(null);
  50.          return
  51. }
  52.  
  53.  
  54. function Evento(elemento,nomevento,funcion)
  55. {
  56.   if (elemento.attachEvent)
  57.   {
  58.       var f=function(){
  59.         funcion.call(elemento,window.event);
  60.     }
  61.     elemento.attachEvent('on'+nomevento,f);
  62.     return true;
  63.   }
  64.   else  
  65.     if (elemento.addEventListener)
  66.     {
  67.       elemento.addEventListener(nomevento,funcion,false);
  68.       return true;
  69.     }
  70.     else
  71.       return false;
  72. }
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 01/01/2009 a las 06:16