Foros del Web » Programando para Internet » Javascript » Frameworks JS »

No carga mi javascript, ... !Mas claro!

Estas en el tema de No carga mi javascript, ... !Mas claro! en el foro de Frameworks JS en Foros del Web. Bueno amigos antes ya había posteado algo similar, pero me costo mucho explicarlo con mi sistema. Ahora cree un código muy sencillo para que me ...
  #1 (permalink)  
Antiguo 01/01/2010, 19:01
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación No carga mi javascript, ... !Otra Duda T_T !

Bueno amigos antes ya había posteado algo similar, pero me costo mucho explicarlo con mi sistema.

Ahora cree un código muy sencillo para que me comprendan a un 100% a que me refería.

He creado un script en HTML, simplemente un botón que debe llamar a un método utilizando ajax.

Código HTML:
Ver original
  1. <script type='text/javascript' src='javascript.js'></script>
  2. </head>
  3.  
  4. <div id='botonMostrar'><button type='button' onClick='llamarMensaje()'>Mostrar</button></div>
  5. <div id='resultado'></div>
  6. </html>

Ahora voy a mostrar el script del archivo javascript.js

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19. function llamarMensaje(){
  20.  
  21.     //Ocultamos el boton que lista las variedades
  22.     ocultarBoton    = document.getElementById('botonMostrar');
  23.     ocultarBoton.style.display='none';
  24.    
  25.     //Donde se mostrará el resultado
  26.     divResultado        = document.getElementById('resultado');
  27.  
  28.     //Instanciamos el objetoAjax
  29.     ajax                = objetoAjax();
  30.    
  31.     //Usamos el metodo GET
  32.  
  33.     url = "mostrar.php";  
  34.     ajax.open("GET",url,false);
  35.     ajax.onreadystatechange=function() {
  36.         if (ajax.readyState==4) {
  37.             //Mostrar resultados en esta capa y lo convertimos en HTML dentro de un DIV
  38.             divResultado.innerHTML = ajax.responseText;
  39.         }else{
  40.             //Aquí es el proceso de espera y dejamos una imagen simulando la espera o el progreso.
  41.             divResultado.innerHTML = 'Cargando...';
  42.        
  43.         }
  44.     }
  45.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  46.     //Enviamos el valor null ya que ocupamos el metodo GET
  47.     ajax.send(null);
  48. }

Por ultimo el script que debe mostrar al pinchar el botón mostrar.

Código HTML:
Ver original
  1.     <script>
  2.     alert('Ha ejecutado Javascript');
  3.     </script>  
  4. </head>
  5. </html>

Lo que no he logrado realizar es mostrar ese resultado alert('Ha ejecutado Javascript') !!

No comprendo cual es el problema de que al mostrar el resultado dentro de una etiqueta <div>
No pueda volver a cargar un script en javascript nuevamente.

Espero que me ayuden mis queridos amigos !
Saludos y un buen año para todos.

Última edición por lennhix; 03/01/2010 a las 18:48
  #2 (permalink)  
Antiguo 01/01/2010, 20:53
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
Respuesta: No carga mi javascript, ... !Mas claro!

En esta linea me parece que tenes confundido el nombre del objeto... No es divResultado???

Código Javascript:
Ver original
  1. divResultadoGrilla.innerHTML = ajax.responseText

Ademas te faltan un monton de cierres de linea ";"

A que te referis con " No comprendo cual es el problema de que al mostrar el resultado dentro de una etiqueta <div>
No pueda volver a cargar un script en javascript nuevamente. " ??

El boton lo estas ocultando ni bien haces click... Es evidente que no vas a tener forma de volver a llamar a la funcion excepto que uses setTimeout() o setInterval()...
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 01/01/2010, 21:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Hola, muchas gracias por responder!!

Olvide modificar divResultadoGrilla.innerHTML = ajax.responseText

Pero ya esta!, los cierres ";" tengo entendido que son opcionales en este lenguaje, pero bueno se las he puesto :D

Y me sigue apareciendo el mismo extraño problema de no mostrar el alert(); que tengo en la página mostrar.php.

El botón no es el problema, sino que al pinchar el botón llamo al método llamarMensaje();

Hago una llamada a la página mostrar.php el cual tiene un mensaje en javascript que no me aparece.
Y eso no entiendo el porqué no aparece al presionar el botón.

Última edición por lennhix; 01/01/2010 a las 21:10
  #4 (permalink)  
Antiguo 01/01/2010, 21:17
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
Respuesta: No carga mi javascript, ... !Mas claro!

A ver si entiendo...

Vos haces click en tu boton, llama al "metodo" (digo asi, porque en realidad es una funcion) y de ahi haces un open() al archivo mostrar.php que contiene lo siguiente:

Código HTML:
Ver original
  1.     <script>
  2.     alert('Ha ejecutado Javascript');
  3.     </script>  
  4. </head>
  5. </html>

Es asi?
__________________
HV Studio
Diseño y desarrollo web
  #5 (permalink)  
Antiguo 01/01/2010, 21:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

siip, debe lanzar ese mensaje al pinchar el botón mostrar :)
  #6 (permalink)  
Antiguo 01/01/2010, 21:40
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
Respuesta: No carga mi javascript, ... !Mas claro!

Y porque no haces esto mejor...

mostrar.php
Código PHP:
Ver original
  1. //solamente esa linea
  2. echo "ok";

Y en tu javascript...

Código Javascript:
Ver original
  1. url = "mostrar.php";  
  2.     ajax.open("GET",url,false);
  3.     ajax.onreadystatechange=function() {
  4.         if (ajax.readyState==4) {
  5.             var resp = ajax.responseText;
  6.              (if resp == 'ok'){
  7.                  alert('Ha ejecutado Javascript');
  8.              }
  9.         }else{
  10.             //Aquí es el proceso de espera y dejamos una imagen simulando la espera o el progreso.
  11.             divResultado.innerHTML = 'Cargando...';
  12.        
  13.         }

Antes lo que estabas queriendo hacer es insertar dentro de un div un html nuevo, cosa que no se puede... En un documento html, debe existir una UNICA etiqueta html
__________________
HV Studio
Diseño y desarrollo web
  #7 (permalink)  
Antiguo 01/01/2010, 21:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Hola, gracias nuevamente por ayudarme !!

Bueno te explico que no puedo hacerlo de esa forma, es que el ejemplo que puse arriba y que no lanza el mensaje es un script que hice para ayudar a intentar explicarme sobre ese problema.

Tengo otro sistema un tanto grande que lleva algo muy parecido al ejemplo que hice arriba.

Y si el ejemplo que puse arriba se logra resolver, podre implementarlo en mi sistema.

El sistema se trata que al pinchar un botón listar, me muestra una tabla con combobox dependientes.

Pero el problema es que deja de ser dependiente, ya que que no toma el javascript al presionar el botón listar.

Bueno esop.

El problema real que tengo está en este TEMA
http://www.forosdelweb.com/f77/no-vu...ivo-js-765548/

Si se logra resolver este ejemplo, que el mostrar.php lanze el alert(); .. Podre aplicar esto en el sistema y lograr resolver varios problemas :)


Bueno gracias amigo !
  #8 (permalink)  
Antiguo 01/01/2010, 22:00
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Tengo una duda con esto

Antes lo que estabas queriendo hacer es insertar dentro de un div un html nuevo, cosa que no se puede... En un documento html, debe existir una UNICA etiqueta html

yo pensaba que el método innerHTML es para guardar documentos HTML y mostrar sus resultados HTML
  #9 (permalink)  
Antiguo 01/01/2010, 22:06
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
Respuesta: No carga mi javascript, ... !Mas claro!

Cita:
Iniciado por lennhix Ver Mensaje
Tengo una duda con esto

Antes lo que estabas queriendo hacer es insertar dentro de un div un html nuevo, cosa que no se puede... En un documento html, debe existir una UNICA etiqueta html

Tengo entendido que el método innerHTML es para guardar documentos HTML y mostrar sus resultados HTML
Te explico: innerHTML hace referencia al HTML INTERNO de un elemento. O sea, pensa en esto: A un input para cargarle un valor con javascript le decis:

Código Javascript:
Ver original
  1. tuInput.value = "algo"

Como un div no tiene el atributo "value" no podes hacerlo de la misma forma, y por eso existe innerHTML.

Aclaracion: innerHTML no solo sirve para div's...

Para incluir una pagina dentro de otra existen los iframes.

En cuanto a tu problema, probaste haciendo en mostrar.php:

Código PHP:
Ver original
  1. echo  "alert('Ha ejecutado Javascript')";
__________________
HV Studio
Diseño y desarrollo web
  #10 (permalink)  
Antiguo 01/01/2010, 22:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Si T_T también probé de esa manera,
Código PHP:
Ver original
  1. <? 
  2.     echo    "<script>";
  3.     echo    "alert('Ha ejecutado Javascript')";
  4.     echo    "</script>";
  5. ?>

Es como si el javascript quedara totalmente inactivo al pinchar el botón.

Pero solo para javascript, porque PHP, HTML funciona bien pero Javascript es como que no hubiera escrito nada en javascript.

Y ese es mi problema, porque al presionar el botón tengo que necesariamente llamar otro .JS
Lo cual no lo hace t_t

:(
  #11 (permalink)  
Antiguo 01/01/2010, 23:00
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años, 1 mes
Puntos: 65
Respuesta: No carga mi javascript, ... !Mas claro!

Todo tuyo

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3.     <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  4.     <meta name="author" content="Jackson666" />
  5.     <title>Untitled 1</title>
  6. </head>
  7. <script type="text/javascript">
  8. function startAjax(){
  9.     var xhr = new XMLHttpRequest();
  10.     xhr.open("GET",'mostrar.php');
  11.     xhr.onreadystatechange=function(){
  12.         if(xhr.readyState==4){
  13.             if(xhr.status==200){
  14.                 document.getElementById('rta').innerHTML=eval(xhr.responseText);                
  15.             }
  16.         }
  17.     }
  18. xhr.send(null);
  19. }
  20.  
  21. <a href="javascript:startAjax();">Daleeeeeee</a>
  22. <div id="rta"></div>
  23. </body>
  24. </html>

mostrar.php

Código PHP:
Ver original
  1. alert('hola');


EDIT: olvide decirlo, solo anda en firefox
__________________
HV Studio
Diseño y desarrollo web
  #12 (permalink)  
Antiguo 02/01/2010, 15:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación No muestra el alert()

Hola amigos, no comprendo porque sucede que no muestra el mensaje de alerta, siendo que todo el código esta correcto. Es necesario que lo haga de está forma porque si me funciona, podre arreglar todos los demás.

Al pinchar el botón debe aparecer el mensaje que he dejado en la página de mostrar.php
(No lo muestra porqué es como si no procesara el código javascript), espero que puedan ayudarme a solucionar esto, pero no modificando demasiado el código, es requisito para mi sistema que lo haga de esta forma !

Muchas gracias

Les dejaré el codigo, Gracias.



página: principal.html

Código HTML:
Ver original
  1. <script type='text/javascript' src='javascript.js'></script>
  2. </head>
  3.  
  4. <div id='botonMostrar'><button type='button' onClick='llamarMensaje()'>Mostrar</button></div>
  5. <div id='resultado'></div>
  6. </html>



página: javascript.js

Código Javascript:
Ver original
  1. function objetoAjax(){
  2. var xmlhttp=false;
  3. try {
  4. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5. } catch (e) {
  6. try {
  7. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8. } catch (E) {
  9. xmlhttp = false;
  10. }
  11. }
  12.  
  13. if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14. xmlhttp = new XMLHttpRequest();
  15. }
  16. return xmlhttp;
  17. }
  18.  
  19. function llamarMensaje(){
  20.  
  21.  
  22. //Donde se mostrará el resultado
  23. divResultado = document.getElementById('resultado');
  24.  
  25. //Instanciamos el objetoAjax
  26. ajax = objetoAjax();
  27.  
  28. //Usamos el metodo GET
  29.  
  30. url = "mostrar.php";
  31. ajax.open("GET",url,true);
  32. ajax.onreadystatechange=function() {
  33. if (ajax.readyState==4) {
  34. //Mostrar resultados en esta capa y lo convertimos en HTML dentro de un DIV
  35. divResultado.innerHTML = ajax.responseText;
  36. }else{
  37. //Aquí es el proceso de espera y dejamos una imagen simulando la espera o el progreso.
  38. divResultado.innerHTML = 'Cargando...';
  39.  
  40. }
  41. }
  42. ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  43. //Enviamos el valor null ya que ocupamos el metodo GET
  44. ajax.send(null);
  45. }



Por último la página donde esta el alert() el cual no lo lanza.

Código PHP:
Ver original
  1. <?
  2. echo "<script>";
  3. echo "alert('Ha ejecutado Javascript')";
  4. echo "</script>";
  5. ?>



Saludos y espero que me puedan ayudar :)
  #13 (permalink)  
Antiguo 02/01/2010, 20:26
 
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: No muestra el alert()

Por que no ejecutas la alerta al recibir la respuesta Ajax?.
  #14 (permalink)  
Antiguo 02/01/2010, 20:54
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: No muestra el alert()

no comprendo como estas cargando la ultima porcion de codigo, ¿por ajax? si es el caso, no tiene sentido que php escriba el contenido a no ser que incluiras otro contenido, pero de todos modos no es el problema. ahora bien, no estoy seguro pero algunos navegadores tienen problema para interpretar los script por innerHTML. al menos lo intente in firefox e iexplorer y no me funciona.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #15 (permalink)  
Antiguo 02/01/2010, 23:03
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: No muestra el alert()

Te sugiero que leas lo siguiente:
http://www.disegnocentell.com.ar/notas2.php?id=176
  #16 (permalink)  
Antiguo 02/01/2010, 23:04
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No muestra el alert()

Hola amigos, muchas gracias por responder.

Estoy haciendo de esta forma porque en realidad, este script lo he creado para dar solución a un script un poco parecido.

Por ejemplo en el script de mi sistema:
mostrar.php, no lanza un alerta sino llama a otro archivo javascript.

Entonces eso no funciona, el código javascript deja de funcionar en su totalidad.


Por ejemplo en la página mostrar.php de mi sistema, tiene este combo.js agregado, pero no sirve...
Ya que deja de funcionar el código javascript.

EL alerta lo hice para que se pueda entender mejor a lo que quiero llegar y también probar el código javascript.
(javascript deja de funcionar)

Código HTML:
Ver original
  1.  
  2.         <script type='text/javascript' src='../../js/funcionesAJAX/combo.js'></script>
  3.  
  4. </head>
  #17 (permalink)  
Antiguo 02/01/2010, 23:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Hola amigo, muchas gracias por prestarme de tu ayuda.

Bueno probé el código y funciona bien, no he podido hacerlo funcionar en IE y también no me he podido ajustarlo a lo que mi sistema necesita.

en mi sistema no debe lanzar el

Código Javascript:
Ver original
  1. alert('hola');

Sino hacer una llamada a un archivo ej .JS

Código HTML:
Ver original
  1.  
  2.         <script type='text/javascript' src='../../js/funcionesAJAX/combo.js'></script>
  3.  
  4. </head>

Al parecer esto no funciona t_t
  #18 (permalink)  
Antiguo 02/01/2010, 23:36
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: No muestra el alert()

Primero agregás este prototipo:
Código:
String.prototype.tratarResponseText=function(){
    var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig;
    var pat2=/\bsrc=[^>\s]+\b/g;
    var elementos = this.match(pat) || [];
    for(i=0;i<elementos.length;i++) {
        var nuevoScript = document.createElement('script');
        nuevoScript.type = 'text/javascript';
        var tienesrc=elementos[i].match(pat2) || [];
        if(tienesrc.length){
            nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join('');
        }else{
            var elemento = elementos[i].replace(pat,'$1','');
            nuevoScript.text = elemento;
        }
        document.getElementsByTagName('body')[0].appendChild(nuevoScript);
    }
    return this.replace(pat,'');
}
Luego reemplazás esta línea de tu código:
Código PHP:
divResultado.innerHTML ajax.responseText
por esta otra:
Código PHP:
divResultado.innerHTML ajax.responseText.tratarResponseText(); 
  #19 (permalink)  
Antiguo 03/01/2010, 00:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: No carga mi javascript, ... !Mas claro!

Temas unidos

lennhix: Procura no repetir los temas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #20 (permalink)  
Antiguo 03/01/2010, 14:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Muchisimas Gracias amigos foreros por ayudarme en dar solución a mi problema, les cuento que Panino5001 me ha regalado un código que ha dado una solución al 100% a mi problema, por eso le agradezco mucho, porque gracias a ese código podre seguir trabajando en mi sistema hasta terminarlo.

Les deseo un muy buen año!
Y cuando termine mi sistema lo publicare :D

Saludos a todos
  #21 (permalink)  
Antiguo 03/01/2010, 18:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Hola!!

Tengo otra consulta!

Bueno ha funcionado perfecto hacer el <script> alert('hola'); </script>

Pero no ha funcionado hacer la llamada del archivo :

Código HTML:
Ver original
  1.  
  2.         <script type='text/javascript' src='hola.js'></script>
  3.  
  4. </head>

:S
  #22 (permalink)  
Antiguo 03/01/2010, 19:04
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: No carga mi javascript, ... !Mas claro!

Probablemente tengas un problema de sintaxis o de rutas. Fijate cómo este ejemplo sí funciona: http://www.disegnocentell.com.ar/new...os/pagina1.php
  #23 (permalink)  
Antiguo 03/01/2010, 20:14
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Si, Muchas Gracias amigo!!!

He visto el ejemplo y ocupan un javascript externo, en el ejemplo funciona perfecto, si que estoy revisando mi código.

Saludos y gracias por ayudarme :)
  #24 (permalink)  
Antiguo 03/01/2010, 22:22
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Bueno he logrado que funcione con un JS externo,
Pero tengo otro JS que no funciona, es para que un comobox dependa de otro y muestre los registros llamados de MySQL.

Tengo el jquery.js
y este :

Código Javascript:
Ver original
  1. /* +---- Funciones JS que ocupamos para la página criterio_calibre.php ----+ */
  2. $(document).ready(function(){
  3.    
  4.     $("select").change(function(){
  5.         alert('a seleccionado')
  6.         // Vector para saber cuál es el siguiente combo a llenar
  7.         var combos = new Array();
  8.         //productor             //especie
  9.         //especie               //variedad
  10.         //variedad              //etapa
  11.         combos['especie']       = "variedad";
  12.         combos['variedad']      = "productor";
  13.         combos['productor']     = "etapa";     
  14.  
  15.         // Tomo el nombre del combo al que se le a dado el clic por ejemplo: especie
  16.         posicion = $(this).attr("name");
  17.         // Tomo el valor de la opción seleccionada
  18.         valor = $(this).val()      
  19.  
  20.  
  21.         // Evaluó  que si es productor y el valor es 0, vacié los combos de Especie, Variedad y Etapa
  22.         if(posicion == 'especie' || valor==0){
  23.             $("#variedad").html('   <option value="0" selected="selected" style="width: 148px">Seleccionar Variedad</option>')
  24.             $("#productor").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Productor</option>')
  25.             $("#etapa").html('      <option value="0" selected="selected" style="width: 148px">Seleccionar Etapa</option>')
  26.            
  27.             $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  28.             $("#"+combos[posicion]).html(data);})
  29.         }
  30.         if(posicion == 'variedad' || valor==0){
  31.                         $("#productor").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Productor</option>')
  32.                         $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  33.                         $("#"+combos[posicion]).html(data);})
  34.         }
  35.         if(posicion == 'productor' || valor==0){
  36.                         $("#etapa").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Etapa</option>')
  37.                         $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  38.                         $("#"+combos[posicion]).html(data);})
  39.         }
  40.  
  41.     })             
  42. })

Colocados de la forma correcta, pero no sirve :S

Bueno para esto necesitaba que funcione javascript realment, para hacer funcionar este script!!!

funciona bien creando un alert(),pero no el script que hace que los combobox sean dependientes.

que enrendo :S


Dejo dos fotos, Una con el botón y la otra es cuando pincha el botón aparece los combobox.

Si dejo el script de los combobox dependientes dentro de la página principal, sin el botón, funciona perfecto.
Pero si coloco el botón y muestro haciendo click, el script no funciona. No entra a

$(document).ready(function(){
alert('no entra') // no ingresa!!






bueno como dije antes, funciona perfecto sin el botón, dejando el código de los comobox en la página principal.
Pero si dejo el código de los combobox en otra página y la llamo al pinchar el botón, esto deja de funcionar...

Última edición por lennhix; 03/01/2010 a las 23:24
  #25 (permalink)  
Antiguo 04/01/2010, 01:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No carga mi javascript, ... !Mas claro!

Intentare explicarlo un poco mejor!

Bueno

Tengo la página principal. index.html que contiene :
* Incluye el jquery.
* el Objeto XMLHTTPRequest.
* funciones ( aquí dentro está el código para los combobox dependientes).

* Contiene el código para ver el botón y al pincharlo muestra la tabla con los combobox.

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.  
  5.         <script type='text/javascript' src='jquery.js'></script>
  6.  
  7.     <script type='text/javascript' src='objetoXMLHTTPRequest.js'></script>
  8.  
  9.         <script type='text/javascript' src='funciones.js'></script>
  10.  
  11.         <!-- Elemental -->
  12.  
  13. </head>
  14.  
  15. <div align="center">      
  16.  
  17. <div id="botonCalibres"><button type='button' onClick="mostrarCriterioCalibres()">Mostrar Calibres <img src="http://www.forosdelweb.com/f77/images/icons/listar.png" ></button></div>
  18.  
  19. <div id="mostrarComboBox"></div>
  20.  
  21. </div>
  22. </body>
  23. </html>

Hasta aquí todo va bien, si pincho el botón me muestra la tabla con los combobox.
Ahora mostrare la página donde está el código de los comobobox.

Código HTML:
Ver original
  1. <div align="center">  
  2.  
  3. <table width="584" border="0" align="center" cellpadding="0" cellspacing="0">
  4.  
  5.   <tr>
  6.  
  7.     <td width="584" height="28" align="center">
  8.  
  9.     <form name="formularioCalibres" method="GET" >
  10.  
  11.         <table border="0" align="center" cellpadding="0" cellspacing="0">
  12.  
  13.           <tr>
  14.  
  15.             <td colspan="4" align="left" class="titulo">Criterio Calibres</td>
  16.  
  17.             </tr>      
  18.  
  19.  
  20.  
  21.              <tr>            
  22.  
  23.          <td class="titulo"><B>Especie:</B></td>
  24.  
  25.             <td colspan="4" class="alt" align="left">
  26.  
  27.             <select name="especie" id="especie" style="width: 260px" onChange="pedirDatosCalibres()">
  28.  
  29.             <option value="0" selected="selected">Seleccionar Especie</option>
  30.  
  31. <?php
  32.  
  33.     $res = mysql_query("SELECT DISTINCT(id_especie) FROM criterio_calibres");
  34.  
  35.     $cant =  mysql_num_rows($res);
  36.  
  37.  
  38.  
  39.         if($cant>0){                       
  40.  
  41.             while($rs = mysql_fetch_array($res)){
  42.  
  43. ?>
  44.  
  45.     <option value="<?php echo $rs["id_especie"]?>"><?php echo $rs["id_especie"]?></option>
  46.  
  47. <?php  
  48.  
  49.             }
  50.  
  51.         }
  52.  
  53. ?>
  54.  
  55.  
  56.  
  57.             </select>
  58.  
  59.             </td>
  60.  
  61.         </tr>
  62.  
  63.             <td class="titulo"><B>Variedad:</B></td>
  64.  
  65.             <td colspan="4" class="alt" align="left">      
  66.  
  67.             <select id="variedad" name="variedad" style="width: 260px" onChange="pedirDatosCalibres()">
  68.  
  69.                 <option value="0" selected="selected">Seleccionar Variedad</option>
  70.  
  71.             </select>
  72.  
  73.            
  74.  
  75.         </td>
  76.  
  77.          </tr>
  78.  
  79.  
  80.  
  81.         <tr>
  82.  
  83.             <td class="titulo"><B>Productor:</B></td>
  84.  
  85.             <td colspan="4" class="alt" align="left">
  86.  
  87.             <select id="productor" name="productor" style="width: 260px" onChange="pedirDatosCalibres(),habilitarBotonAgregar(this.form),habilitarBotonEliminar(this.form)">
  88.  
  89.                 <option value="0" selected="selected">Seleccionar Productor</option>
  90.  
  91.             </select>
  92.  
  93.            
  94.  
  95.             </td>
  96.  
  97.             </tr>  
  98.  
  99.         <tr>
  100.  
  101.             <td class="titulo"><B>Etapa:</B></td>
  102.  
  103.             <td class="alt" align="left">
  104.  
  105.             <select id="etapa" name="etapa" style="width: 135px" onChange="pedirDatosCalibres()">
  106.  
  107.                 <option value="0" selected="selected">
  108.  
  109.                 <?php echo 'Seleccionar Etapa'; ?>
  110.  
  111.                 </option>
  112.  
  113.             </select>
  114.  
  115.             </td>          
  116.  
  117.     </form>
  118.  
  119.    </table>
  120.  
  121.   </td>
  122.  
  123.  </tr>
  124.  
  125.  
  126. <div id="resultado"></div>        
  127.  
  128. <div id="campos"></div>
  129.  
  130. <div id="modificar"></div>
  131.  
  132. </div>

Bueno esto es lo que no funciona. Pero si lo dejo en la página principal, sin el botón.
Osea que al entrar al index.html me muestre los combobox. Sin el botón. Funciona bien.

Ahora muestro el código ajax de los combobox dependientes.

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3.     $("select").change(function(){
  4.         // Vector para saber cuál es el siguiente combo a llenar
  5.         var combos = new Array();
  6.         //productor             //especie
  7.         //especie               //variedad
  8.         //variedad              //etapa
  9.         combos['especie']       = "variedad";
  10.         combos['variedad']      = "productor";
  11.         combos['productor']     = "etapa";     
  12.  
  13.         // Tomo el nombre del combo al que se le a dado el clic por ejemplo: especie
  14.         posicion = $(this).attr("name");
  15.         // Tomo el valor de la opción seleccionada
  16.         valor = $(this).val()
  17.                    
  18.         // Evaluó  que si es productor y el valor es 0, vacié los combos de Especie, Variedad y Etapa
  19.         if(posicion == 'especie' || valor==0){
  20.             $("#variedad").html('   <option value="0" selected="selected" style="width: 148px">Seleccionar Variedad</option>')
  21.             $("#productor").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Productor</option>')
  22.             $("#etapa").html('      <option value="0" selected="selected" style="width: 148px">Seleccionar Etapa</option>')
  23.            
  24.             $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  25.             $("#"+combos[posicion]).html(data);})
  26.         }
  27.         if(posicion == 'variedad' || valor==0){
  28.                         $("#productor").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Productor</option>')
  29.                         $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  30.                         $("#"+combos[posicion]).html(data);})
  31.         }
  32.         if(posicion == 'productor' || valor==0){
  33.                         $("#etapa").html('  <option value="0" selected="selected" style="width: 148px">Seleccionar Etapa</option>')
  34.                         $.post("consultasJS/criterioCalibres_js.php",{combo:$(this).attr("name"), id:$(this).val() },function(data){
  35.                         $("#"+combos[posicion]).html(data);})
  36.         }
  37.  
  38.     })             
  39. })

Y la función pedirDatosCalibres()

Código Javascript:
Ver original
  1. function pedirDatosCalibres(etapaRecibida){
  2.  
  3.     //Ocultamos el formulario de Ingresar Otro
  4.     ocultarCampos   = document.getElementById('campos');
  5.     ocultarCampos.style.display='none'; // Con este script, logramos mostrar los campos nuevamente.
  6.  
  7.     //Ocultamos el formuladio de Modificar
  8.     ocultarModificarVer = document.getElementById('modificar');
  9.     ocultarModificarVer.style.display='none';
  10.  
  11.     //Donde se mostrará el resultado
  12.     divResultadoGrilla      = document.getElementById('resultado');
  13.        
  14.    
  15.     //Tomamos el valor del Formulario Calibres
  16.     especie             = document.formularioCalibres.especie.value;
  17.     variedad            = document.formularioCalibres.variedad.value;
  18.     productor           = document.formularioCalibres.productor.value;
  19.     etapa               = document.formularioCalibres.etapa.value;
  20.     etapaRecibida       = etapaRecibida; // Recibo True o underfined , o si fuera de listaCriterio* Envio un valor de Etapa
  21.    
  22.     //Instanciamos el objetoAjax
  23.     ajax                = objetoAjax();
  24.     // Creamos una variable donde guarde un valor aleatorio, que nos sirve para engañar las cookies del navegador.
  25.     var miAleatorio=parseInt(Math.random()*99999999);
  26.     //Usamos el metodo GET
  27.     //Archivo que realizará la operacion
  28.     //listaCriterioCalibre.php
  29.     url = "consultasJS/listaCriterioCalibre.php?productor=" + productor + "&especie=" + especie + "&variedad=" + variedad + "&etapa=" + etapa + "&etapaRecibida=" + etapaRecibida;  
  30.     ajax.open("GET",url+ "&rand=" + miAleatorio,true);
  31.     ajax.onreadystatechange=function() {
  32.         if (ajax.readyState==4) {
  33.             //Mostrar resultados en esta capa y lo convertimos en HTML dentro de un DIV
  34.             divResultadoGrilla.innerHTML = ajax.responseText.tratarResponseText();
  35.         }else{
  36.             //Aquí es el proceso de espera y dejamos una imagen simulando la espera o el progreso.
  37.             divResultadoGrilla.innerHTML = '<img src="http://www.forosdelweb.com/f77/images/icons/carga.gif">';
  38.        
  39.         }
  40.     }
  41.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  42.     //Enviamos el valor null ya que ocupamos el metodo GET
  43.     ajax.send(null)
  44.  
  45. }


Bueno decir que no entra al
Código Javascript:
Ver original
  1. $("select").change(function(){
Al Seleccionar el primer combobox.

T_T

Eso es todo.

El script que me ha ofrecido Panino5001 funciona a la perfección, pero no entiendo porqué no funciona con el script de los combobox dependientes.

Espero que me hallan entendido :) Muchas gracias!

Etiquetas: ajax, carga, claro, javascript, mas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:53.