Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2009, 12:38
ingeday
 
Fecha de Ingreso: noviembre-2008
Mensajes: 89
Antigüedad: 16 años, 1 mes
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...