Ver Mensaje Individual
  #10 (permalink)  
Antiguo 15/04/2010, 09:12
darkmcloud
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Problema con ASP y Ajax

Aqui estamos de nuevo Adler....

Hice todas las modificaciones que me dijiste pero ahora me aparece un error en el navegador que dice lo siguiente:
Cita:
Mensaje: 'inpt.2.id' es nulo o no es un objeto
Línea: 54
Carácter: 9
Código: 0
URI: http://localhost/bodega2/for.asp

En esa linea esta esto:
Cita:
SelUsuario.Evento(inpt[2].id, 'keyup', SelUsuario.Empieza);

Aquí está el código con todas las modificaciones que me dijiste que hiciera:

Código ASP:
Ver original
  1. <%@ Language=VBScript %>
  2. <% Response.addHeader " ", "no-cache" %>
  3. <% Response.CacheControl = "Private" %>
  4. <% Response.Expires=0 %>
  5. <% 
  6. CANTIDAD    =Trim ( cdbl(Request("cantidad")) )
  7.  
  8. CSR_INI     =Trim ( cdbl(Request("csr_ini")) )
  9.  
  10. Actual  = date()
  11.  
  12. Set Cnn = Server.CreateObject( "ADODB.Connection" )
  13. Set RS = Server.CreateObject( "ADODB.Recordset" )
  14. Cnn.Open Session("cnx")
  15.  
  16. strSQL="SELECT distribuidor FROM Distribuidores where idDistribuidor='"&distribuidor&"'"
  17. set rs = Cnn.Execute(strSQL)
  18.  
  19. distribuidor = rs.Fields("distribuidor")
  20.  
  21. strSQL = "SELECT  ( "&CSR_INI&" + "&CANTIDAD&")-1  as CONTADOR"
  22. set rs= Cnn.Execute(strSQL)
  23.  
  24. %>
  25. <style type="text/css">
  26. <!--
  27. body {
  28.     background-image: url(../inventario/images/2x1900.jpg);
  29. }
  30. -->
  31. #contenedor div.seleccionado {font-weight:bold; background:#F0F0F0; color:#black;}
  32. #contenedor div.deseleccionado {background:#FFFFFF; color:#000000;}
  33. #contenedor div{font:11px verdana; color:#000000; cursor:pointer; text-align:left; padding:2px 5px;}
  34.  
  35. .capa {
  36. background: #FFFFFF;
  37. border:1px solid rgb(120,120,120);
  38. width: 150px;
  39. _width: 250px;
  40. text-align: left;
  41. position: absolute;
  42. top: 30px;
  43. _top:38px;
  44. left: 117px;
  45. _left: 119px;
  46. }
  47. </style>
  48. <script type="text/javascript">
  49. var SelUsuario = {
  50.  
  51. Evento: function (elemento,nomevento,funcion) {
  52.   if (elemento.attachEvent)
  53.   {
  54.       var f=function(){
  55.         funcion.call(elemento,window.event);
  56.     }
  57.     elemento.attachEvent('on'+nomevento,f);
  58.     return true;
  59.   }
  60.   else  
  61.     if (elemento.addEventListener)
  62.     {
  63.       elemento.addEventListener(nomevento,funcion,false);
  64.       return true;
  65.     }
  66.     else
  67.       return false;
  68. },
  69.  
  70.  
  71. init: function(){
  72. tablas = document.body.getElementsByTagName('table');
  73. for (i=0; i < tablas.length; i++) {
  74. inpt = tablas[i].getElementsByTagName('input');
  75.         SelUsuario.Evento(inpt[2].id, 'keyup', SelUsuario.Empieza);
  76.         SelUsuario.Evento(inpt[2].id+ '_contenedor', 'mouseover', SelUsuario.Seleccionar);
  77.         SelUsuario.Evento(inpt[2].id, 'keydown', SelUsuario.Pegar2);
  78.         SelUsuario.Evento(window, 'click', SelUsuario.Cerrar);
  79. }
  80.     },
  81.  
  82.  
  83.  
  84. creaAjax: function (){
  85.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  86.     var ajax = false;
  87.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  88.         try{
  89.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  90.         }
  91.         catch(e) {
  92.             ajax = false;
  93.         }
  94.     }
  95.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  96.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  97.     }
  98.     return ajax;
  99. },
  100.  
  101. Empieza: function (ev) {
  102. var str = document.getElementById(this.id).value;
  103. var obj = document.getElementById(this.id+'_contenedor');
  104. var ref = obj.getElementsByTagName('DIV');
  105. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  106.  
  107.  
  108.  if (keyCode == 40) {
  109. //alert("flecha abajo")
  110.     SelUsuario.BajaOpt ()
  111.  } else if (keyCode == 38) {
  112. //alert("flecha arriba")
  113.     SelUsuario.SubeOpt ()
  114.  
  115.  
  116.  
  117.  
  118. } else if (keyCode == 13) {
  119.  
  120. for (var i = 0; i <= ref.length-1; i++) {
  121. if (ref[i].className == "seleccionado") {
  122.  
  123.         document.getElementById(this.id).value = ref[i].id;
  124.         if (obj.style.display == "block"); obj.style.display= "none";
  125.         break;
  126.         }
  127.  
  128.     }
  129.  
  130.     try{ // DOM;
  131.         ev.preventDefault();
  132.         }catch(e){ // iexplore;
  133.         ev.returnValue = false;
  134.         }
  135.  
  136. } else {
  137.  
  138.     if (str.length < 2) {
  139.         //obj.innerHTML = "";
  140.         if (obj.style.display == "none")  obj.style.display= "none";
  141.                 else obj.style.display= "none";
  142.         return;
  143.     }
  144.     ajax = SelUsuario.creaAjax()
  145.     if (ajax==null) {
  146.         alert ("Tu navegador no soporta Ajax");
  147.         return;
  148.      }
  149. var url="sugest/SelecUsuarios.asp?q="+escape(str);
  150.     ajax.open("GET",url,true);
  151.     ajax.onreadystatechange = SelUsuario.Despliega;
  152.     //ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  153.             ajax.send(null);
  154.             return
  155. }
  156. },
  157.  
  158.  
  159.  
  160. Despliega: function () {
  161. var obj = document.getElementById(this.id+'_contenedor');
  162.    
  163.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  164.                                         obj.innerHTML = "<p align='center'><img src='../images/cargando.gif' border='0px' widht='15px' height='15px'/></p>";
  165.             obj.style.display= "block";
  166.                 }
  167.  
  168.                 else if (ajax.readyState==4) {
  169.             if (ajax.status==200) {
  170.             obj.innerHTML = unescape(ajax.responseText);
  171.  
  172.             }else {
  173.                                     obj.innerHTML = "<p>Se ha producido un error</p>";
  174.             }
  175.  
  176.         if (obj.style.display == "none")  obj.style.display= "block";
  177.         }
  178. },
  179.  
  180. Seleccionar: function () {
  181. var ref = document.getElementById(this.id).getElementsByTagName('DIV');
  182. //alert(ref);
  183. for (var i = 0; i < ref.length; i++) {
  184.  
  185. SelUsuario.Evento(ref[i], 'click', function() {
  186. SelUsuario.Pegar(this.id);
  187. //alert(this.id);
  188. })  
  189.  
  190.  
  191. SelUsuario.Evento(ref[i], 'mouseover',  function() {
  192. SelUsuario.Marcar(this.id);
  193. })
  194.  
  195. //SelUsuario.Evento(ref[i], 'mouseout',  function() {
  196. //SelUsuario.DesMarcar(this.id);
  197. //})
  198. }
  199. },
  200.  
  201.  
  202.  
  203. Pegar: function (valor) {
  204. //alert("el val " +valor);
  205. var obj = document.getElementById(this.id+'_contenedor')
  206.         document.getElementById(this.id).value = valor;
  207.                 if (obj.style.display == "block"); obj.style.display= "none";      
  208. },
  209.  
  210.  
  211. Pegar2: function (ev) {
  212. var obj = document.getElementById(this.id+'_contenedor')
  213. var ref = obj.getElementsByTagName('DIV');
  214. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  215.  
  216. // enter 13 tab 9
  217. if ((keyCode == 13) || (keyCode == 9)) {
  218. //alert("enter")
  219.  
  220. for (var i = 0; i <= ref.length-1; i++) {
  221. if (ref[i].className == "seleccionado") {
  222.  
  223.         document.getElementById(this.id).value = ref[i].id;
  224.         //window.focus();
  225.         if (obj.style.display == "block"); obj.style.display= "none";
  226. break;
  227. //alert(ref[i].id);
  228.  
  229.  
  230. }
  231. }
  232.  
  233. if (keyCode == 13) {
  234.     try{ // DOM;
  235.         ev.preventDefault();
  236.         }catch(e){ // iexplore;
  237.         ev.returnValue = false;
  238.         }
  239. }
  240.  
  241.  
  242. }  
  243. },
  244.  
  245.  
  246. BajaOpt: function() {
  247. var ref = document.getElementById(this.id+'_contenedor').getElementsByTagName('DIV');
  248. for (var i = 0; i <= ref.length-1; i++) {
  249. if (ref[i].className == "seleccionado") {
  250. ref[i].className = "deseleccionado";
  251. if (i < ref.length-1){
  252. i++;
  253. }else{
  254. i = 0;
  255. }
  256. //alert("Largo: " +(ref.length-1)+ " Valor: " +i);
  257. ref[i].className = "seleccionado"
  258. }
  259. }
  260. },
  261.  
  262.  
  263. SubeOpt: function() {
  264. var ref = document.getElementById(this.id+'_contenedor').getElementsByTagName('DIV');
  265. for (var i = 0; i <= ref.length-1; i++) {
  266. if (ref[i].className == "seleccionado") {
  267. ref[i].className = "deseleccionado";
  268. if (i < ref.length && i > 0){
  269. i--;
  270. }else{
  271. i = ref.length-1;
  272. }
  273. //alert("Largo: " +(ref.length-1)+ " Valor: " +i);
  274. ref[i].className = "seleccionado"
  275. }
  276. }
  277. },
  278.  
  279. Marcar: function (id) {
  280. var selecionado = document.getElementById(id);
  281. var ref = document.getElementById(this.id+'_contenedor').getElementsByTagName('DIV');
  282. for (var i = 0; i <= ref.length-1; i++) {
  283. if (ref[i].id != id) {
  284. ref[i].className = "deseleccionado";
  285. selecionado.className = "seleccionado";
  286. }
  287. }
  288. },
  289.  
  290. //DesMarcar: function (id) {
  291. //var ref = document.getElementById(id);
  292. //alert(ref);
  293. //ref.className = "deseleccionado"
  294. //alert("el " +id);        
  295. //},
  296.  
  297.  
  298. Cerrar: function () {  
  299. var obj = document.getElementById(this.id+'_contenedor')
  300.             if (obj.style.display == "block"); obj.style.display= "none";  
  301.    
  302. }
  303. }
  304.  
  305. SelUsuario.Evento(window, 'load', SelUsuario.init);
  306. </script>
  307. <form>
  308. <table width="430" height="103" border="1" align="center" bordercolor="#0000FF">
  309. <tr>
  310. <td width="213"><p>Distribuidor: <%=response.write (""&DISTRIBUIDOR&"") %></p>
  311. <p>Local: <%=response.write (""&LOC&"") %></p>
  312. <p>Fecha: <%=response.write (""&ACTUAL&"") %></p></td>
  313. <td width="130"><p>Gu&iacute;a de Despacho </p><p>N&ordm;: <%=response.write (""&GUIA_D&"") %></p></td>
  314. </tr>
  315. </table>
  316. <p align="center">&nbsp;</p>
  317. <%For cuen = ""&CSR_INI&"" To ""&rs("CONTADOR")&"" Step 1%>
  318. <table width="351" border="1" align="center" bordercolor="#0000FF" id="idt_<%=cuen%>">
  319. <tr>
  320. <td>Sel</td>
  321. <td width="36">Csr:</td>
  322. <td width="70">Modelo:</td>
  323. <td width="47">Serie:</td>
  324. <td width="170">Comentarios:</td>
  325. </tr>
  326. <tr>
  327. <td width="21"><input type="checkbox" name="cod" value="" tabindex="1" ></td>
  328. <td height="55"><input type="text" name="csr" readonly="readonly" size="3" value=<%=cuen%> tabindex="2"></td>
  329. <td><input type="text" name="txt" id="txt_<%=cuen%>" value="" autocomplete="off" tabindex="3"></td>
  330. <div id="contenedor_<%=cuen%>" class="capa" style="display:none;"></div></div>
  331. <td><input type="text" name="serie" tabindex="4"></td>
  332. <td><textarea name="comentarios" cols="30" rows="3" wrap="VIRTUAL" tabindex="5"></textarea></td>
  333. </tr>
  334. </table>
  335. <%next%>
  336. <p align="center">&nbsp;</p>
  337. </form>


De antemano muchas gracias