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

Variables globales Ajax agent + php...

Estas en el tema de Variables globales Ajax agent + php... en el foro de Frameworks JS en Foros del Web. Hola amigos, Estoy haciendo mis primeros scripts utilizando esta herramienta (AjaxAgent) y se me presenta la siguiente situacion: Dentro del form tengo un input text ...
  #1 (permalink)  
Antiguo 03/04/2007, 16:23
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Pregunta Variables globales Ajax agent + php...

Hola amigos,

Estoy haciendo mis primeros scripts utilizando esta herramienta (AjaxAgent) y se me presenta la siguiente situacion:

Dentro del form tengo un input text con el evento OnBlur haciendo el llamado a la funcion agent.call('','funcionPhP','funcionResultado',para metro1,parametro2);

He verificado y efectivamente ejecuta la funcionPhp, pero mi lio es que necesito utilizar una variable global (que en realidad es un array multidimensional) generada por otras funciones del mismo scriptPhp y que al hacerle un echo o un print_r no me muestra nada

Dicha variable global la tengo registrada como variable de sesion y en la funcionPhp tambien la tengo declarada como global

Agradezco de antemano sus valiosas opiniones

Un cordila Saludo
  #2 (permalink)  
Antiguo 03/04/2007, 16:34
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Variables globales Ajax agent + php...

loading.......

:: como está tu archivo php? (codigo)
:: En tu funcion PHP de proceso, hiciste
print_r($_SESSION);
?

connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 03/04/2007, 16:59
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Re: Variables globales Ajax agent + php...

Gracias MaBoRaK por responder....

Posteo un script similar al que tengo pero bastante mas sencillo para que te des una idea

Código PHP:
<?
  ini_set
('session.cache_limiter''');
  
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
  
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  
header('Pragma: no-cache');

  include_once(
"agent.php");
  
$ag $agent->init();

  
session_start();
  
session_register("resultado");

  include_once (
'lee_base.php');
  include (
'configuracion/abrirbd.php');  //Establece conexion a BD

  
funcion_1();  //Genera matriz resultado

  
mostrar_resultado();  //Muestra Matriz resultado en un form

  
function funcion_1() {
     global 
$resultado$db;

     
$query "Select * from tabla";
     
$resultado lee_todo($query); // Ejecuta el query y deja el resultado en matriz multidimensional
  
}

 function  
funcionPhp($parametro1$parametro2) {
     global 
$resultado;

     
print_r($resultado);
     return 
"";
  }

  function 
mostrar_resultado() {
     global 
$resultado$ag;
  }
?>
<html>
  <head><script languaje="javascript">
<!--

function ve_saldos(i) {
var val = document.getElementById('valor1'+i).value;
agent.call('','funcionPhp','Resultado',val,i);
}

function Resultado(obj) {
alert(obj);
}

--></script>
</head>
<body>
<form>
  <tr></tr>
      <table>
          <tr>
 <?         for ($i=0$i<count($resultado); $i++) {
                   
extract($resultado[$i]);
                   echo 
"<tr><td><input type='text' id='valor1$i' name='valor$i' value='$datoUno' OnBlur='ve_saldos($i);' ></td>";
                   echo 
"<td>$otroDato</td></tr>";
              }
?>
           </tr>
      </table>
</form>
</body>
</html>
Espero, con esto, aclararte un poco mas mi situacion....

Un Cordial Saludo
  #4 (permalink)  
Antiguo 03/04/2007, 17:05
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Variables globales Ajax agent + php...

no comprendo bien que es lo que pides o necesitas.. pero para empezar como buen comentario recomiendo que las variables globales las saques de esas funciones y las declares seguido de los includes

ahora supongo que funcion_1(); si guarda todo en una matriz.. entonces deberia de ser una sesion porque no veo donde regreses la matriz

la verdad no he entendido bien lo que quieres hacer.. pero ahi veo que tienes mucha redundancia de codigo.. y recuerda.. lo de las variables globales.. ese puede ser tu error.. ya que las usas y luego las declaras globales en las funciones siguientes
  #5 (permalink)  
Antiguo 03/04/2007, 17:19
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Re: Variables globales Ajax agent + php...

Gracias erlingfiallos

Basicamente lo que busco es que la funcionPhp (llamada desde agent.call) me reconozca la matriz de session (en este caso $resultado) y poder hacer operaciones con esos datos

Atendere tus sugerencias, modificare mi codigo dejando solo variables de sesion y eliminando la declaracion de global en las demas funciones y comentare el resultado obtenido. Aunque incluyendo la instruccion print_r($_SESSION); dentro de funcionPhp igual no me muestra nada

De nuevo, Mil Gracias a todos
  #6 (permalink)  
Antiguo 03/04/2007, 17:43
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Variables globales Ajax agent + php...

siempre siempre si hacer print_r a session debera mostrarte algo.. por lo menos el ID_SESSION.. entonces quizas no hayas inicializado la sesion o algo mas por ahi te hace falta..
  #7 (permalink)  
Antiguo 03/04/2007, 18:03
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Re: Variables globales Ajax agent + php...

Por fin erlingfiallos y MaBoRaK

El codigo final quedo asi:

Código PHP:
<?
  ini_set
('session.cache_limiter''');
  
header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
  
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  
header('Pragma: no-cache');
  
session_start();

  include_once (
'lee_base.php');
  include (
'configuracion/abrirbd.php');  //Establece conexion a BD
  
include_once("agent.php");

  
session_register("resultado");
  
session_register("ag");

  
$ag $agent->init();

  
funcion_1();  //Genera matriz resultado
  
mostrar_resultado();  //Muestra Matriz resultado en un form


  
function funcion_1() {
     global 
$db$resultado;

     
$query "Select * from diarios";
     
$resultado lee_todo($query); // Ejecuta el query y deja el resultado en matriz multidimensional
  
}

 function  
funcionPhp($parametro1$parametro2) {
   global 
$resultado;
     
print_r($resultado);
     return 
"";
  }

  function 
mostrar_resultado() {
     global 
$resultado$ag;
?>
<html>
  <head><script languaje="javascript">
<!--

function ve_saldos(i) {
var val = document.getElementById('valor1'+i).value;
agent.call('','funcionPhp','Resultado',val,i);
}

function Resultado(obj) {
alert(obj);
}

--></script>
</head>
<body bgcolor="#ffcdef">
<form name="depe" method="post" action="<?= $PHP_SELF?>">
  <tr></tr>
      <table>
          <tr>
 <?         for ($i=0$i<count($resultado); $i++) {
                   
extract($resultado[$i]);
                   echo 
"<tr><td><input type='text' id='valor1$i' name='valor$i' value='$diario' OnBlur='ve_saldos($i);' ></td>";
                   echo 
"<td>$nom_diario</td></tr>";
              }
?>
           </tr>
      </table>
</form>
</body>
</html>
<? ?>
Lo que no pude fue que teniendo las variables registradas como de sesion no declararlas como globales en las otras funciones, es decir, fue necesario tambien delararlas como globales dentro de las funciones.

Agradezco inmensamente la colaboracion por ustedes brindada
  #8 (permalink)  
Antiguo 03/04/2007, 18:32
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Variables globales Ajax agent + php...

loading.........


ammm, en si... registrar sessiones es algo ya que se habia dejado de hacer en... años creo jeje

connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 03/04/2007, 21:07
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Variables globales Ajax agent + php...

la forma correcta de inicializar variables de sesion seria algo como lo siguiente q escribire.. y de esta forma ya no es necesario declarar variables globales dentro de las funciones.. porque con eso sigues redundando codigo.

Código PHP:
session_start();

$_SESSION['cadena'] = "";
$_SESSION['numero'] = 0;
$_SESSION['arreglo'] = array();
$_SESSION['booleano'] = false;

// y la forma de uso

echo getvalor();

function 
getvalor() {
   
$valor $_SESSION['numero'];
   return 
$valor;

  #10 (permalink)  
Antiguo 04/04/2007, 07:23
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Re: Variables globales Ajax agent + php...

Hola de nuevo erlingfiallos

Atendiendo tu ultima recomendacion te comento lo siguiente:

En mi php.ini tengo activada register_globals on y en mis scripts utilizo session_register(). Ahora, revisando la documentacion del sitio oficial de PHP encontramos lo siguiente en el apartado session_register();

Cita:
Atención

Esto registra una variable global. Si desea registrar una variable de sesión desde el interior de una función, necesita asegurarse de hacerla global usando la palabra clave global o la matriz $GLOBALS[], o usar las matrices de sesión especiales, como se anota a continuación.
Es por esa razon que utilizamos global dentro de cada funcion.

Agradezco tus recomendaciones y, de verdad, lo tendre encuenta al momento de realizar nuevos scripts

Un Cordial Saludo
  #11 (permalink)  
Antiguo 04/04/2007, 08:44
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: Variables globales Ajax agent + php...

Bueno, q bien que investigas y no te quedas con las dudas.. pero yo te daba esa solucion porque asi como dice MaBoRaK el session_register() creo que recomendaron no usarlo mas aunque todavia sigue activo en versiones 4 y 5 del PHP.. Su contraparte es $_SESSION y cuando haces algo como $_SESSION['variable'] eso la registra automaticamente para ser usada como global.

En fin.. la cosa es que funcione..
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 15:55.