Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

php - ajax (variable global)

Estas en el tema de php - ajax (variable global) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenos días Amigos, Estoy probando la libreria xajax, para usar ajax con php, y en la prueba que estoy haciendo, necesito una variable global, pero ...
  #1 (permalink)  
Antiguo 22/01/2010, 04:16
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Pregunta php - ajax (variable global)

Buenos días Amigos,

Estoy probando la libreria xajax, para usar ajax con php, y en la prueba que estoy haciendo, necesito una variable global, pero resutla que no se almacena el valor en la variable desde la funcion..

Utilizo radiobuttons, por eso necesito la variable global, para saber cual tengo pinchado...

Código PHP:
<?
require ('xajax/xajax_core/xajax.inc.php');
$xajax = new xajax();

$valor1 1;

$xajax->configure('javascript URI''xajax/');


function 
DarValor($val)
{
  global 
$valor1;
  
$valor1 $val;
    
$objResponse = new xajaxResponse();
    
$objResponse->assign('pruebas''innerHTML'$valor1);
    return 
$objResponse;
}

function 
Encuesta($Encuesta)
{
  global 
$valor1;
  
    if (
$valor1==0){
        
$text "Malo";
    }else{
    if (
$valor1==1) {
      
$text "Bueno";
      }else{
      if (
$valor1==2)
            
$text "Muy Bueno";
          else
            
$text "Ninguno";
      }
  }
    
  
$objResponse = new xajaxResponse();
    
$objResponse->assign('mensaje''innerHTML'$text);
    
    return 
$objResponse;
}
//Registramos la funcion a usar.
$xajax->registerFunction('Encuesta');
$xajax->registerFunction('DarValor');

$xajax->processRequest();

echo 
'<?xml version="1.0" encoding="UTF-8"?>';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>xajax example</title>
<?php
    
// output the xajax javascript. This must be called between the head tags
    
$xajax->printJavascript();
?>
</head>
<body style="text-align:center;">
Selecciona esto.
<br>
<br>
<br>
<br>

<form name="formulario1">
  <input type="radio" name="group1" value="0" onclick='xajax_DarValor(0)'> Malo<br>
  <input type="radio" name="group1" value="1" checked onclick='xajax_DarValor(1)'> Bueno<br>
  <input type="radio" name="group1" value="2" onclick='xajax_DarValor(2)'> Muy Bueno
</form>
<button onclick='xajax_Encuesta(0)'>Votar</button>
<br>
<div id="mensaje"> </div>
<div id="pruebas"> </div>
</body>
</html>
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #2 (permalink)  
Antiguo 22/01/2010, 08:17
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: php - ajax (variable global)

Me parece que no esta muy en claro el tema "ambito de variables", te dejo este articulo

http://www.desarrolloweb.com/articulos/2457.php

Deberias usar el array $GLOBALS[]
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 22/01/2010, 08:27
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: php - ajax (variable global)

Estimados,

La variables "globales" están desaconsejadas en PHP y están claramente en "desuso" (deprecated).

Usa sesiones u otro mecanismo.

Saludos
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #4 (permalink)  
Antiguo 22/01/2010, 09:09
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: php - ajax (variable global)

Buenas amigos,

Al final lo he solucionado de la siguiente forma...

el boton le pasara a la funcion el form... (SOLO vale este tipo de botón, el otro no)
<input type="button" value="Votar" onclick="xajax_Encuesta(xajax.getFormValues('formu lario1'))"/>


Este código no es esactamente el que tengo, pero debería de funcionar ^^
Muchas gracias por vuestra ayuda

Código PHP:
<?
require('xajax/xajax_core/xajax.inc.php');

$xajax = new xajax();
$xajax->configure('javascript URI''xajax/');

//function Encuesta($frm)
function Encuesta($frm)
{
  
//$valor = $frm['group1'];
  
  
if (empty($frm['group1'])){
    
$valor=-1;
  }
  
  
  if (
$valor==0){
        
$text "Malo";
    }else{
    if (
$valor==1) {
      
$text "Bueno";
      }else{
      if (
$valor==2)
            
$text "Muy Bueno";
        else
          
$text;
      }
  }
    
  
$objResponse = new xajaxResponse();
    
$objResponse->assign('mensaje''innerHTML'$text);
    
    return 
$objResponse;
}
//Registramos la funcion a usar.
$xajax->registerFunction('Encuesta');

$xajax->processRequest();

echo 
'<?xml version="1.0" encoding="UTF-8"?>';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>xajax example</title>
<?php
    
// output the xajax javascript. This must be called between the head tags
    
$xajax->printJavascript();
?>
</head>
<body style="text-align:center;" onload="xajax_Encuesta(xajax.getFormValues('formulario1'))">
Selecciona esto.
<br>
<br>
<br>
<br>
<form id="formulario1" name="formulario1">
  <input type="radio" id="group1" name="group1" value="0"> Malo<br>
  <input type="radio" id="group1" name="group1" value="1"> Bueno<br>
  <input type="radio" id="group1" name="group1" value="2"> Muy Bueno
</form>
<input type="button" value="Votar" onclick="xajax_Encuesta(xajax.getFormValues('formulario1'))"/>
<div id="mensaje"> </div>
<br>
</body>
</html>
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)

Etiquetas: ajax, global, php, variables
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 16:54.