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

Contenido de una funcion php en div ejecutando AJAX

Estas en el tema de Contenido de una funcion php en div ejecutando AJAX en el foro de Frameworks JS en Foros del Web. Hola foreros, mi caso es el siguiente, tengo una pagina dividida en divs. En una de estas partes hay ciertos parametros (combos, textareas...) de cuyo ...
  #1 (permalink)  
Antiguo 04/01/2010, 06:25
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Contenido de una funcion php en div ejecutando AJAX

Hola foreros,

mi caso es el siguiente,
tengo una pagina dividida en divs. En una de estas partes hay ciertos parametros (combos, textareas...) de cuyo valor depende el contenido de los divs de abajo. ya tengo hechas funciones php que rellenan dichos divs segun los parametros.
Hasta ahora me habia empeñado en hacerlo con javascript y php pero es un lio macabeo de cuidao, chapucero, recargando paginas etc, asique por fin lo voy a hacer con ajax.
Mi pregunta es, como puedo llamar a esas funciones? Todos lso ejemplos que he visto incluyen una pagina diferente en el div, no ejecutan una funcion.

Os dejo una porcion de código:



<div id="tablas_relleno">
<div id="tabla_origen">
<?php pintarTablaDatos("Origen",$numEnlaces); ?>
</div>
<div id="tabla_destino">
<?php pintarTablaDatos("Destino",$numEnlaces); ?>
</div>
<div id="tabla_itx" style="display:none">
<?php pintarTablaInterconexion("Destino",$numEnlaces );?>
</div>
</div>



y el ajax.js

var XMLHttpRequestObject = false;

if (window.XMLHttpRequest) {

XMLHttpRequestObject = new XMLHttpRequest();

} else if (window.ActiveXObject) {

XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

}

function pedirDatos(fuenteDatos, divID){ // aqui es donde quiero que fuentedatos sea una funcion

if(XMLHttpRequestObject) {

var obj = document.getElementById(divID);

XMLHttpRequestObject.open("GET", fuenteDatos);

XMLHttpRequestObject.onreadystatechange = function(){

if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {

obj.innerHTML = XMLHttpRequestObject.responseText;

}

}

XMLHttpRequestObject.send(null);

}

}



gracias!
  #2 (permalink)  
Antiguo 07/01/2010, 15:13
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Contenido de una funcion php en div ejecutando AJAX

el parametro fuenteDatos, TIENE que ser una ruta a un archivo cualquiera de tu servidor, en este caso a un archivo php que contiene las funciones que necesitas ejecutar.

XMLHttpRequestObject.send(null); .... es mejor que no le mandes el parametro en Null, alli envias una cadena con lo valores que necesite la funcion, ejemplo "valor1=a&valor2=b&valor3=c&FUNCION=nombre_funcion ";

ahora en tu archivo de php que es llamado con ajax, lo que debes hacer es algo como esto:

eval($_POST["FUNCION"]."(".$_POST["valor1"].");" );

lo que hace eval es evaluar la cadena que se le manda como parametro y si es una instruccion php valida la ejecuta, es como si estuviera escrito esto:

nombre_funcion("a");

obviamente el codigo de la funcion nombre_funcion, debe estar incluido en el fichero php.

ahora bien el resultado de la ejecucion de esta funcion debe ser una cadena html, qque es la que manejas en javascript con XMLHttpRequestObject.responseText; y esto lo que pones en el atributto innerHTML del div que necesites modificar
  #3 (permalink)  
Antiguo 14/01/2010, 04:46
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Contenido de una funcion php en div ejecutando AJAX

Muchas gracias por tu respuesta!
ya casi funciona, el problema ahora es la funcion eval(). Me da este error:

Parse error: syntax error, unexpected ')' in funciones_ajax.inc(3) : eval()'d code on line 1

y asi comienza el archivo php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. eval($_POST["FUNCION"]."(".$_POST["numero"].");" );
  4.  
  5. function pintarTablaDatos($nEnlaces){
  6.  
  7.     $loc = "Origen";
  8.  
  9.     $x = array("Nº", "Equipo", "SUBR/A155M" , "SLOT/VC4", "PUERT/VC12", "E1");
  10.     echo "<table id=\"tabla$loc\">";
  11.     echo "<tr>";
  12.     echo "<th colspan=\"6\">$loc</th>";
  13.     echo "</tr>";
  14.     echo "<tr class=\"pequeno\">";
  15.     for ($i=0;$i<=5;$i++) {
  16.         echo "<td>$x[$i]</td>";
  17.     }
  18.     echo "</tr>";
  19.     for ($j=0;$j<=$nEnlaces - 1;$j++) {
  20.         echo "<tr>";
  21.         for($h=0;$h<=5;$h++) { // nombre es loc_nEnlace_tipo
  22.             echo "<td><select name=\"$loc$j$x[$h]\" >";
  23.             echo "<option value=\"0\" selected>(select:)</option>";
  24.             echo "</select></td>";
  25.         }
  26.         echo "</tr>";
  27.     }
  28.     echo "</table>";
  29. //}

que llave es la que falla?

gracias!
  #4 (permalink)  
Antiguo 14/01/2010, 04:46
 
Fecha de Ingreso: enero-2010
Mensajes: 21
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Contenido de una funcion php en div ejecutando AJAX

me olvide de decir, ahora lo que hace es imprimirme el archivo php donde tengo las funciones, en lugar de ejecutar la que le indico

Etiquetas: ajax, contenido, funcion, php
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 13:54.