Ver Mensaje Individual
  #11 (permalink)  
Antiguo 08/03/2007, 10:02
Avatar de fasc
fasc
 
Fecha de Ingreso: septiembre-2004
Mensajes: 6
Antigüedad: 20 años, 3 meses
Puntos: 0
Ejecutar una funcion JS llamada atravez de AJAX.

Saludos...

Estoy teniendo casi el mismo problema que SuperJavi, esta un poco viejo el tema, pero según leí puede que ustedes me ayuden.Yo Llamo un archivo que contiene html y funciones JS que deben ejecutarse en ese html.

En otras palabras:

index.php contiene el <div> con el id="cat_tabla"
<div id="cat_tabla"></div>

Por medio de ajax llamo al archivo tabla.php para que se despliegue dentro del div con el id="cat_tabla"

tabla.php contiene html y funciones JS.

Mi problema consiste en que tengo una función que debe ejecutarse luego de que se realice un evento dentro del html recién cargado a través de ajax, digamos “onclick”.

Según el ejemplo que mostraron aquí después: de que carga la respuesta PHP se utiliza lo que mostró Saruman "eval" para que se ejecute el JS y el script de Anarko para dividir el javascript del html. Esto hace que inmediatamente depues de que cargue el HTML se ejecute lo que tienes en JS. Lo he probado y funciona perfectamente, pero no me funciona cuando es una función JS, es decir, no deseo que se ejecute inmediatamente sino despues de realizar un evento en el HTML que acabo de llamar.

Este es el contenido de index.php
Código HTML:
<a onclick="xmlhttp_function('1')">Cargar Archivo</a><br /><br />
<div id="cat_tabla"></div> 
Esto es tabla.php
Código HTML:
<form name="frm" method="GET" action="">
<input type="text" onclick="valor()" name="name1" value=''>
</form>

|fasc| 

function valor(){
     document.frm.name1.value='adios1';
}
la funcion de ajax tiene esto:
Código PHP:
function xmlhttp_function(cat){
  var 
document.getElementById("cat_tabla");
  
xmlhttp.open("GET","parser.php?id=" cat true);
  
xmlhttp.onreadystatechange = function(){
    if (
xmlhttp.readyState == 4){
      
results xmlhttp.responseText.split('|fasc|');
      
x.innerHTML results[0];
      eval(
results[1]);
    }
  }
  
xmlhttp.send(null);

El archivo parser.php es el que llama el archivo tabla.php tiene esto:

Código PHP:
if($_GET[id] == 1){
    include(
"tabla.php");

Hay algo que tengo mal o es de alguna otra manera que se puede hacer esto?