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

Problemas al ejecutar JS desde AJAX

Estas en el tema de Problemas al ejecutar JS desde AJAX en el foro de Frameworks JS en Foros del Web. Buenas Tardes, Se que el tema ya esta rayado y han explicado mucho pero a mi no me funciona nada, y si no pregunto quedo ...
  #1 (permalink)  
Antiguo 28/01/2009, 12:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 89
Antigüedad: 15 años, 5 meses
Puntos: 0
Problemas al ejecutar JS desde AJAX

Buenas Tardes,

Se que el tema ya esta rayado y han explicado mucho pero a mi no me funciona nada, y si no pregunto quedo frito...

Mi problema es que tambien quiero ejecutar una funcion/codigo JAVASCRIPT en una pagina que cargo en un div con AJAX...

Haber tengo esto:

archivo admin.php
Código PHP:
// Aqui traigo mis librerias JS
echo "<script type=\"text/javascript\">";
include (
"modulos/MenuLinks/includes/lib_ajax.js");  // Libreria donde tengo algunas funciones AJAX...
include ("modulos/MenuLinks/includes/lib_js.js");
echo 
"</script>";

/* Luego tengo un select. que es donde los usuarios escogen una opcion
 Y al evento onChange ejecuto mi función AJAX loadContent(...) que carga el
 archivo tablaEnlacesMenuPadre.php donde hay una consulta a la base de datos
 y se muestran los registros... Pero en caso de que no haya registros, 
quisiera ejecutar un script por ejemplo un alert('No Hay Registros').
*/
echo 'Menu Padre<br />                
                <select onChange="loadContent(\'modulos/MenuLinks/includes/tablaEnlacesMenuPadre.php\', \'enlacesMenuPadre\', \'pid\',this.value);" name="Lnk_MenuPadre" id="Lnk_MenuPadre">'
;
                    
$proy_query="select men_id, men_nombre from ve_menupadre;";
                    
$proy_valueOpt="men_id";
                    
$proy_valueShowOpt="men_nombre";                                                                                            
                    
cargarSelect($proy_query$proy_valueOpt$proy_valueShowOpt);
                echo 
'</select>';

// Aqui esta el div donde se llama el archivo
echo "<div id=\"enlacesMenuPadre\">

</div>"

Mi archivo tablaEnlacesMenuPadre.php es este...
Código PHP:
// Librerias de conexion a la BD
// defino la consulta en la var $query
$result=mysql_query($query,$link);
    $nreg=mysql_num_rows($result);
    
    ?>
<table width="200" border="1" style="margin:auto;">
  <tr>
    <th scope="col">Orden</th>
    <th scope="col">Nombre</th>
    <th scope="col">Enlace</th>
    <th scope="col">Descripci&oacute;n</th>
    <th scope="col">Estado</th>
  </tr>  
<?
    
if($nreg!=0) {
        
$i=0;
        while(
$fila=mysql_fetch_array($result)) {
            
$i++;            
            echo 
"<tr class=\"tr_mouseover\" onclick=\"colocar('reg$i');\">
            <td id=\"reg$i\">"
.$fila['lnk_orden']."</td>
            <td>"
.$fila['lnk_nombre']."</td>
            <td>"
.$fila['lnk_enlace']."</td>
            <td>"
.$fila['lnk_descripcion']."</td>
            <td>"
.$fila['lnk_estado']."</td>
              </tr>"
;
        }
        
    }
    else {
/* Quiero aclarar que si lo llamo con un evento como OnClick... ahi si me funciona, 
 pero no quiero ningun evento que el usuario tenga que hacer, sino que el script 
se genere solo*/
    
echo "<tr>
    <td colspan=\"5\" align=\"center\" onClick=\"alert('Hola');\">No Hay Enlaces para este menu</td>    
    </tr>"
;
// AQUI ES DONDE QUIERO EJECUTAR MI SCRIPT......
echo "<script>alert('No Hay Registros')</script>
    }

else {
echo "
<i>ErrorRevise conexion a la base de datos.</i>";
}

mysql_close($link);
  ?>
</table>


....................... Aqui esta mi Lib_Ajax (Donde esta la funcion de AJAX) que he entendido que es ahi donde se hace el cambio, lo que dijo Maborak... pero no entendi muy bien.
Código HTML:
// JS Carga Asincrona de Archivos mediante AJAX
var peticion = false;
try {
//Crea el objeto XMLhttpRequest para navegadores Firefox, Safari u Opera
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 6 ó superior
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 5
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}

if (!peticion)
alert("ERROR AL INICIALIZAR!");
function loadContent(fragment_url, element_id, varGET, valueVarGET) {	
	var element = document.getElementById(element_id);
	element.innerHTML = '<p><img src="hourglass.png" align="absmiddle" border="0" /><b> Cargando</b></p>';	
	peticion.open("GET", fragment_url+'?'+varGET+'='+valueVarGET);
	peticion.onreadystatechange = function() {
		if (peticion.readyState == 4) {
		element.innerHTML = peticion.responseText;
		}
	}	

/* Si pongo el CODIGO de Maborak aqui no me sirve, y creo que es ahi donde se pone xD */
 // Asi fue que entendi yo...


/*
var scs=pagina_requerida.responseText.extractScript(); // al parecer extractScript no funciona
document.getElementById(contenedor).innerHTML=pagina_requerida.responseText;
scs.evalScript(); 

Y creo que pagina_requerida es en mi script la variable peticion
*/

	peticion.send(null);
}



Gracias por todo.... Y por el tiempo en leer esto... es sencillo, pero no doy...

Última edición por ingeday; 28/01/2009 a las 12:49 Razón: Ninguna...
  #2 (permalink)  
Antiguo 28/01/2009, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas al ejecutar JS desde AJAX

De hecho ese código como bien pones debe de ir adentro del if() donde evaluas si readyState == 4 para que se haga la extracción y ejecución.

Saludos
  #3 (permalink)  
Antiguo 28/01/2009, 15:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 89
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Respuesta: Problemas al ejecutar JS desde AJAX

Hola... le he agregado el codigo en el if... y ha quedado así:

lib_ajax.js

Código:
// JS Carga Asincrona de Archivos mediante AJAX
var peticion = false;
try {
//Crea el objeto XMLhttpRequest para navegadores Firefox, Safari u Opera
peticion = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 6 ó superior
peticion = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
//Crea el objeto XMLhttpRequest para IE 5
peticion = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
peticion = false;
}
}
}

if (!peticion)
alert("ERROR AL INICIALIZAR!");
function loadContent(fragment_url, element_id, varGET, valueVarGET) {	
	var element = document.getElementById(element_id);
	element.innerHTML = '<p><img src="hourglass.png" align="absmiddle" border="0" /><b> Cargando</b></p>';
	peticion.open("GET", fragment_url+'?'+varGET+'='+valueVarGET);
	peticion.onreadystatechange = function() {
		if (peticion.readyState == 4) {
// al parecer extractScript() no funciona... Esto es una funcion de Javascript o es 
// hecha por alguno de usted y no la he definido ?
		var scs=peticion.responseText.extractScript(); 
		element.innerHTML = peticion.responseText;
		scs.evalScript(); 
		//document.getElementById(contenedor).innerHTML=pagina_requerida.responseText;	
		}
	}		
	peticion.send(null);
}
Lo que pasa es que hay un error en la linea:
Código:
scs=peticion.responseText.extractScript();
extractScript existe en Javascript ??
  #4 (permalink)  
Antiguo 28/01/2009, 23:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas al ejecutar JS desde AJAX

Mmm no, de hecho si ves el código original indica que tienes que incluir el JS con las funciones para realizar eso.

Saludos.
  #5 (permalink)  
Antiguo 29/01/2009, 10:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 89
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación Respuesta: Problemas al ejecutar JS desde AJAX

Bueno la verdad no veo esa funcion por ningun lado....

Tocará hacerla de 0.... ?
  #6 (permalink)  
Antiguo 29/01/2009, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemas al ejecutar JS desde AJAX

http://www.forosdelweb.com/f77/howto...e-ajax-510438/

Saludos
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 20:57.