Tema: Ajax con ASP
Ver Mensaje Individual
  #32 (permalink)  
Antiguo 04/01/2010, 15:25
darkmcloud
 
Fecha de Ingreso: octubre-2007
Mensajes: 191
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Ajax con ASP

puxila!! creo q vamos cerca......pero el problema es que en familia se rellena con valores asi:

Cita:
2066" class="">MOTOR HT
o sea si se acerca al valor de "familia"

Asi quedo ahora:

SelectUsuariosAjax.asp

Código ASP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. <STYLE TYPE="text/css">
  6. #contenedor div.seleccionado {font-weight:bold; background:#F0F0F0; color:#black;}
  7. #contenedor div.deseleccionado {background:#FFFFFF; color:#000000;}
  8. #contenedor div{font:11px verdana; color:#000000; cursor:pointer; text-align:left; padding:2px 5px;}
  9.  
  10. .capa {
  11. background: #FFFFFF;
  12. border:1px solid rgb(120,120,120);
  13. width: 150px;
  14. _width: 250px;
  15. text-align: left;
  16. position: absolute;
  17. top: 30px;
  18. _top:38px;
  19. left: 117px;
  20. _left: 119px;
  21. }
  22. </STYLE>
  23. <script type="text/javascript">
  24. var familia = "";
  25. var SelUsuario = {
  26.  
  27. Evento: function (elemento,nomevento,funcion) {
  28.   if (elemento.attachEvent)
  29.   {
  30.       var f=function(){
  31.         funcion.call(elemento,window.event);
  32.     }
  33.     elemento.attachEvent('on'+nomevento,f);
  34.     return true;
  35.   }
  36.   else  
  37.     if (elemento.addEventListener)
  38.     {
  39.       elemento.addEventListener(nomevento,funcion,false);
  40.       return true;
  41.     }
  42.     else
  43.       return false;
  44. },
  45.  
  46. init: function(){
  47. var elem1 = document.getElementById("txt");
  48. var elem2 = document.getElementById("contenedor");
  49.         SelUsuario.Evento(elem1, 'keyup', SelUsuario.Empieza);
  50.         SelUsuario.Evento(elem2, 'mouseover', SelUsuario.Seleccionar);
  51.         SelUsuario.Evento(elem1, 'keydown', SelUsuario.Pegar2);
  52.         SelUsuario.Evento(window, 'click', SelUsuario.Cerrar);
  53.     },
  54.  
  55. creaAjax: function (){
  56.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  57.     var ajax = false;
  58.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  59.         try{
  60.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  61.         }
  62.         catch(e) {
  63.             ajax = false;
  64.         }
  65.     }
  66.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  67.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  68.     }
  69.     return ajax;
  70. },
  71.  
  72. Empieza: function (ev) {
  73. var str = document.getElementById(this.id).value;
  74. var obj = document.getElementById("contenedor");
  75. var obj2 = document.getElementById("stock").options[document.getElementById("stock").selectedIndex].value;
  76. var ref = obj.getElementsByTagName('DIV');
  77. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  78.  
  79.  if (keyCode == 40) {
  80. //alert("flecha abajo")
  81.     SelUsuario.BajaOpt ()
  82.  } else if (keyCode == 38) {
  83. //alert("flecha arriba")
  84.     SelUsuario.SubeOpt ()
  85.  
  86. } else if (keyCode == 13) {
  87.  
  88. for (var i = 0; i <= ref.length-1; i++) {
  89. if (ref[i].className == "seleccionado") {
  90.  
  91.         document.getElementById("txt").value = ref[i].id;
  92.         if (obj.style.display == "block"); obj.style.display= "none";
  93.         break;
  94.         }
  95.  
  96.     }
  97.  
  98.     try{ // DOM;
  99.         ev.preventDefault();
  100.         }catch(e){ // iexplore;
  101.         ev.returnValue = false;
  102.         }
  103.  
  104. } else {
  105.  
  106.     if (str.length < 2) {
  107.         //obj.innerHTML = "";
  108.         if (obj.style.display == "none")  obj.style.display= "none";
  109.                 else obj.style.display= "none";
  110.         return;
  111.     }
  112.     ajax = SelUsuario.creaAjax()
  113.     if (ajax==null) {
  114.         alert ("Tu navegador no soporta Ajax");
  115.         return;
  116.      }
  117. var url="SelecUsuarios.asp?q="+escape(str) + "&variable=" +escape(obj2);
  118. //var url="SelecUsuarios.asp?variable=" +obj2 + "&q=" +escape(str);
  119.  
  120.     ajax.open("GET",url,true);
  121.     ajax.onreadystatechange = SelUsuario.Despliega;
  122.     //ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  123.             ajax.send(null);
  124.             return
  125. }
  126. },
  127.  
  128. Despliega: function () {
  129. var obj = document.getElementById("contenedor");
  130.    
  131. if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  132. obj.innerHTML = "<p align='center'><img src='../images/cargando.gif' border='0px' widht='15px' height='15px'/></p>";
  133.             obj.style.display= "block";
  134.                 }
  135.  
  136.                 else if (ajax.readyState==4) {
  137.             if (ajax.status==200) {
  138.            
  139. var division = unescape(ajax.responseText);
  140. obj.innerHTML = division.split("-")[0];
  141. familia = division.split("-")[1];
  142.            
  143.            
  144.             obj.innerHTML = unescape(ajax.responseText);
  145.  
  146.             }else {
  147.              obj.innerHTML = "<p>Se ha producido un error</p>";
  148.             }
  149.  
  150.         if (obj.style.display == "none")  obj.style.display= "block";
  151.         }
  152. },
  153.  
  154. Seleccionar: function () {
  155. var ref = document.getElementById(this.id).getElementsByTagName('DIV');
  156. //alert(ref);
  157. for (var i = 0; i < ref.length; i++) {
  158.  
  159. SelUsuario.Evento(ref[i], 'click', function() {
  160. SelUsuario.Pegar(this.id, familia);
  161. //alert(this.id);
  162. })  
  163.  
  164. SelUsuario.Evento(ref[i], 'mouseover',  function() {
  165. SelUsuario.Marcar(this.id);
  166. })
  167.  
  168. //SelUsuario.Evento(ref[i], 'mouseout',  function() {
  169. //SelUsuario.DesMarcar(this.id);
  170. //})
  171. }
  172. },
  173.  
  174.  
  175. Pegar: function (valor, f) {
  176. //alert("el val " +valor);
  177. var obj = document.getElementById("contenedor")
  178. document.getElementById("txt").value = valor;
  179. document.getElementById("fam").value = f;
  180.                 if (obj.style.display == "block"); obj.style.display= "none";      
  181. },
  182.  
  183. Pegar2: function (ev) {
  184. var obj = document.getElementById("contenedor")
  185. var ref = obj.getElementsByTagName('DIV');
  186. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  187.  
  188. // enter 13 tab 9
  189. if ((keyCode == 13) || (keyCode == 9)) {
  190. //alert("enter")
  191.  
  192. for (var i = 0; i <= ref.length-1; i++) {
  193. if (ref[i].className == "seleccionado") {
  194.  
  195.         document.getElementById("txt").value = ref[i].id;
  196.         //window.focus();
  197.         if (obj.style.display == "block"); obj.style.display= "none";
  198. break;
  199. //alert(ref[i].id);
  200.  
  201.  
  202. }
  203. }
  204.  
  205. if (keyCode == 13) {
  206.     try{ // DOM;
  207.         ev.preventDefault();
  208.         }catch(e){ // iexplore;
  209.         ev.returnValue = false;
  210.         }
  211. }
  212.  
  213.  
  214. }  
  215. },
  216.  
  217.  
  218.  
  219.  
  220.  
  221. BajaOpt: function() {
  222. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  223. for (var i = 0; i <= ref.length-1; i++) {
  224. if (ref[i].className == "seleccionado") {
  225. ref[i].className = "deseleccionado";
  226. if (i < ref.length-1){
  227. i++;
  228. }else{
  229. i = 0;
  230. }
  231. //alert("Largo: " +(ref.length-1)+ " Valor: " +i);
  232. ref[i].className = "seleccionado"
  233. }
  234. }
  235. },
  236.  
  237.  
  238. SubeOpt: function() {
  239. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  240. for (var i = 0; i <= ref.length-1; i++) {
  241. if (ref[i].className == "seleccionado") {
  242. ref[i].className = "deseleccionado";
  243. if (i < ref.length && i > 0){
  244. i--;
  245. }else{
  246. i = ref.length-1;
  247. }
  248. //alert("Largo: " +(ref.length-1)+ " Valor: " +i);
  249. ref[i].className = "seleccionado"
  250. }
  251. }
  252. },
  253.  
  254. Marcar: function (id) {
  255. var selecionado = document.getElementById(id);
  256. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  257. for (var i = 0; i <= ref.length-1; i++) {
  258. if (ref[i].id != id) {
  259. ref[i].className = "deseleccionado";
  260. selecionado.className = "seleccionado";
  261. }
  262. }
  263. },
  264.  
  265. //DesMarcar: function (id) {
  266. //var ref = document.getElementById(id);
  267. //alert(ref);
  268. //ref.className = "deseleccionado"
  269. //alert("el " +id);        
  270. //},
  271.  
  272.  
  273. Cerrar: function () {  
  274. var obj = document.getElementById("contenedor")
  275.             if (obj.style.display == "block"); obj.style.display= "none";  
  276.    
  277. }
  278. }
  279.  
  280. SelUsuario.Evento(window, 'load', SelUsuario.init);
  281. </script>
  282. </head>
  283. <body>
  284. <form method="post" action="">
  285. Nombre Usuario: <input name="txt" type="text" id="txt" tabindex="1" value="" size="40" autocomplete="off" />
  286. <div class="vink" style="margin:5px 0px 0px 10px">
  287. <div id="contenedor" class="capa" style="display:none;"></div></div>
  288. Filtrar: <select id="stock" name="stock">
  289. <option value="constock" selected>Solo con Stock</option>
  290. <option value="sinstock">Sin Stock</option>
  291. </select><br>
  292. <div class="vink" style="margin:5px 0px 0px 10px">
  293. <div id="campo" class="capa" style="display:none;"></div></div>
  294. Familia: <input type="text" name="fam" id="fam" /><br />
  295. <input type="submit" value="Enviar">
  296. </form>
  297. </body>
  298. </html>

Continua......