Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/03/2010, 05:55
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: Problema con Ajax y Asp

Hola

A ver si esto te da alguna idea

otorgar_permisos

Código ASP:
Ver original
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  2. <%
  3. Response.CodePage = 65001
  4. Response.CharSet = "utf-8"
  5. response.Buffer=TRUE
  6. %>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  11. <title>Metodologia Asincronica (AJAX)</title>
  12. <script language="javascript" type="text/javascript">
  13. /* NO BORRAR ESTA SECCION*/
  14. var enProceso = false; // lo usamos para ver si hay un proceso activo
  15. var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest
  16.  
  17. function getHTTPObject() {
  18.     var xmlhttp;
  19.     /*@cc_on
  20.     @if (@_jscript_version >= 5)
  21.        try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  22.            } catch (e) {
  23.           try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  24.           } catch (E) { xmlhttp = false; } }
  25.     @else
  26.         xmlhttp = false;
  27.     @end @*/
  28.     if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  29.        try {xmlhttp = new XMLHttpRequest();
  30.        } catch (e) { xmlhttp = false; }}
  31.     return xmlhttp;}
  32.  
  33. /* ESTA FUNCION MANEJARA LA RESPUESTA */
  34. function handleHttpResponse() {
  35. if (http.readyState == 4) {
  36.     if (http.status == 200) {
  37.         if (http.responseText.indexOf('invalid') == -1){
  38.             results = http.responseText.split(",");
  39.             document.getElementById(results[0]).innerHTML = results[1];
  40.             enProceso = false;}
  41.         }
  42.     else
  43.             {
  44.             results = http.responseText.split(",");
  45.             document.getElementById(results[0]).innerHTML = results[1];
  46.             enProceso = false;
  47.             }
  48.     }
  49. }
  50.  
  51. /* ESTA FUNCION ENVIARA LA RESPUESTA*/
  52. function Privilegios(UserID,UserStatus,Mostrar) {
  53. var UID, UST;
  54. if (!enProceso && http) {
  55.     UID = document.getElementById(UserID).value;
  56.     UST = document.getElementById(UserStatus).value;
  57.     var url = "Otorgar_Permiso_AJAX.asp?UI="+ Mostrar + "_" + UID + "*" + UST + "&UID="+ Math.random();
  58.     http.open("GET", url, true);
  59.     http.onreadystatechange = handleHttpResponse;
  60.     enProceso = true;
  61.     http.send(null);}}
  62. </script>
  63. </head>
  64. <%response.Flush()%>
  65. <body>
  66. <form>
  67. <table>
  68. <tr><th>#</th>
  69.     <th>Nombre</th>
  70.     <th>Privilegio</th>
  71.     <th>Grabar</th>
  72.     <th>Mensaje</th></tr>
  73. <%
  74. response.Flush()
  75. on error resume next
  76. strcon="Provider=Microsoft.Jet.OLEDB.4.0;"&_
  77.         "Data Source="&server.MapPath("./database.mdb")&";"
  78. set conexion = Server.CreateObject("ADODB.Connection")
  79. conexion.open strcon
  80.  
  81. BuscarSQL="select * from Usuarios;"
  82. set Buscar=conexion.execute(BuscarSQL)
  83. if Err=0 then
  84.     if Buscar.EOF=FALSE then
  85.         i=1
  86.         while Buscar.EOF=FALSE%>
  87. <tr><th><%=i%></th>
  88.     <td>Nombre<%=i%> --> <%=Buscar.Fields("nombre")%>
  89.         <input type="hidden" name="nom<%=i%>" id="nom<%=i%>" value="<%=Buscar.Fields.Item("id").value%>" /></td>
  90.     <td><select name="id<%=i%>" id="id<%=i%>" >
  91.         <%
  92.         select case Buscar.fields.item("privilegio").value
  93.             case "D" %>
  94.             <option value="-">-</option>
  95.             <option value="D" selected="selected">Denny</option>
  96.             <option value="A">Allow</option><%
  97.             case "A" %>
  98.             <option value="-">-</option>
  99.             <option value="D">Denny</option>
  100.             <option value="A" selected="selected">Allow</option><%
  101.             case else%>
  102.             <option value="-" selected="selected">-</option>
  103.             <option value="D">Denny</option>
  104.             <option value="A">Allow</option><%
  105.         end select%>
  106.         </select></td>
  107.     <td>
  108.     <input type="button" onclick="Privilegios('nom<%=i%>','id<%=i%>','msj<%=i%>');" value="Asignar" />
  109.     </td><th id="msj<%=i%>"></th></tr>
  110. <%      i=i+1
  111.         Buscar.MoveNext
  112.         wend
  113.         response.Flush()
  114.     else
  115.         respuesta="Erro. No se encontro parametro a consultar"
  116.     end if
  117. else
  118.     respuesta="Error. No se puede realizar"
  119. end if%>
  120. <tr><td id="msjerror" colspan="5"></td></tr>
  121. </table>
  122. </form>
  123. </body>
  124. </html>
  125. <%response.End()%>

otorgar_permiso_ajax

Código ASP:
Ver original
  1. <%
  2. Response.CodePage = 65001
  3. Response.CharSet = "utf-8"
  4. response.Buffer=TRUE
  5. 'conexion a la tabla
  6. sub plugin
  7. end sub
  8. if isnull(request.QueryString("UI")) then
  9.     response.Write("Error")
  10.     response.End()
  11. else
  12.     'SEPARAMOS EL IDENTIFICADOR DE MENSAJES, DE LOS VALORES A TRATAR
  13.     a=split(request.QueryString("UI"),"_")
  14.     'VOLVEMOS A SEPARAR LOS DATOS PARA LAS EJECUCIONES PERTINENTES
  15.     b=split(a(1),"*")
  16.     if b(1)="-" then
  17.         respuesta="Seleccione el Privilegio"
  18.     else
  19.         strcon="Provider=Microsoft.Jet.OLEDB.4.0;"&_
  20.             "Data Source="&server.MapPath("./database.mdb")&";"
  21.         set conexion = Server.CreateObject("ADODB.Connection")
  22.    
  23.         conexion.open strcon
  24.  
  25.         'CREAMOS LA ESTRUCTURA DE CONSULTA Y ACTUALIZACION
  26.         BuscarSQL="select * from Usuarios where ID="&b(0)&";"
  27.         ActualizarSQL = "UPDATE Usuarios"&_
  28.                         " SET Privilegio = '" & b(1) &"'"&_
  29.                         " WHERE id = " & b(0) & ";"
  30.    
  31. '   respuesta = "a0 =" & a(0) &_
  32. '               "<br/>" &_
  33. '               "a1 =" & a(1) &_
  34. '               "<br/>" &_
  35. '               "b0 =" & b(0) &_
  36. '               "<br/>" &_
  37. '               "b1 =" & b(1) &_
  38. '               "<br/>" &_
  39. '               "SQL Buscar =" & BuscarSQL &_
  40. '               "<br/>" &_
  41. '               "SQL Update =" & ActualizarSQL
  42. '   response.Write "msjerror,<br/>"&respuesta
  43. '   response.End()
  44.     'EJECUTAMOS LA SENTENCIA
  45.         set Buscar=conexion.execute(BuscarSQL)
  46.         'VERIFICAMOS QUE NO TENGAMOS ERRORES DE CONSULTA
  47.         if Err=0 then
  48.             'VERIFICAMOS QUE NO SEA EL FINAL DE LA TABLA
  49.             if Buscar.EOF=FALSE then
  50.                 'EJECUTAMOS NUESTRA ACTUALIZACION
  51.                 conexion.execute(ActualizarSQL)
  52.                 'VERIFICACION DE NO ERROR DE ACTUALIZCION
  53.                 if Err=0 then
  54.                     'SI TODO MARCHO PERFECTAMENTE
  55.                     respuesta="Dato Grabado Perfectamente"
  56.                 else
  57.                     'ALGUN ERROR DE ACTUALIZACION, DESLEGAMOS
  58.                     respuesta="Error. No se actualizo dato. "&ActualizarSQL
  59.                 end if
  60.             else
  61.                 'EN CASO DE NO ENCONTRAR EL ID
  62.                 respuesta="Erro. No se encontro parametro a consultar"
  63.             end if
  64.         else
  65.             'EN CASO DE ERROR DE ESTRUCTURA DE LA BUSQUEDA
  66.             respuesta="Error. No se puede realizar. "&BuscarSQL
  67.         end if
  68.     end if
  69.     '/****************************************/
  70.     'NO MOVER LA ESTRUCTURA
  71.     'A[0] = ID DONDE SE MOSTRARA LA RESPUESTA
  72.     'RESPUESTA= CUALQUIER MENSAJE DE ERROR O VICEVERSA
  73.     '/****************************************/
  74.         if Err=0 then
  75.             mje_en=a(0)&","&respuesta
  76.             response.Write mje_en
  77.             response.Flush()
  78.         else
  79.             mje_en="msjerror"&","&respuesta
  80.             response.Write mje_en
  81.             response.Flush()
  82.         end if
  83.     '/****************************************/
  84. end if
  85. response.End()
  86. %>

Para insertar registros en otorgar_permiso_ajax cambia update por insert into

Suerte
__________________
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;" />