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

Problema con $_session

Estas en el tema de Problema con $_session en el foro de Frameworks JS en Foros del Web. Buenos días, siento que mi primera toma de contacto con el foro sea para pedir ayuda. Estoy iniciandome con php y xajax y dificilmente puedo ...
  #1 (permalink)  
Antiguo 05/07/2009, 03:04
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Problema con $_session

Buenos días, siento que mi primera toma de contacto con el foro sea para pedir ayuda. Estoy iniciandome con php y xajax y dificilmente puedo ayudar. A lo que voy, tengo una página que me muestra unos campos y si le doy al botón + me debe sumar una unidad al valor del textbox, para eso me quiero valer del array global $_session, pero solo me permite leer su valor en una parte del código, dentro mi funcion mod_venta no me lo lee y me da valor null. Alguien me echa un cable? O me da consejo de hacerlo de otra manera, estoy harto de leer y buscar y no doy con nada. Lo único que necesito es añadir una unidad cada vez que pulse el botón más y no soy capaz

Muchas gracias de antemano

Aqui va mi codigo:

<?php
session_start();

mysql_connect("localhost", "****","****");
mysql_select_db( "gestionttpp" );
$result_set = mysql_query( "SELECT * FROM ventas ");

$_session['prueba']=array();

for( $c=0; $c<mysql_num_fields( $result_set ); $c++ ) //leemos los campos para mostrar los botones
{
$_session['prueba'][]=2;
}

require ('xajax_core/xajax.inc.php');

$xajax = new xajax();

$xajax->register(XAJAX_FUNCTION, 'mod_venta');

$xajax->processRequest(); //Procesa cualquier peticion


Function mod_venta($boton,$ope)
{
$respuesta = new xajaxResponse();

$datos=$_session['prueba'];//Aquí no me lee de $_session
if ($ope==1)
{
$Vb="Vb";
//$var=$_session['prueba'];
//$valor=$var[$boton]+2;
//$respuesta->Assign($Vb.$boton,"value",$valor);
$respuesta->Alert($datos[2]);
return $respuesta;
}

}



?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Formulario para grabar venta</title>
<?
$xajax->printJavascript("");//cadena vacia para indicar la ruta de xajax/xajax_core/
?>
</head>

<body>
<form id="formulario">
<?php
//$valores=array();
//session_start();
mysql_connect("localhost", "****","****");
mysql_select_db( "gestionttpp" );
$result_set = mysql_query( "SELECT * FROM ventas ");
$datos=$_session['prueba'];
for( $c=0; $c<mysql_num_fields( $result_set ); $c++ ) //leemos los campos para mostrar los botones
{
//creación línea venta
echo "<input type='button' name='less".$c."' id='less".$c."' value='-' />";
echo mysql_field_name( $result_set, $c );
echo "<input type='button' value='+' name='plus".$c."'id='plus".$c."' onclick='xajax_mod_venta(\"".$c."\",\"1\")'/>";
echo "<input name='Vb".$c."' id = 'Vb".$c."'type='text' width='2' value= '".$datos[$c]."'>";//Aquí si me lee correctamente de $_session
echo "<br>";

}
?>

</form>
</body>
</html>
  #2 (permalink)  
Antiguo 05/07/2009, 16:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Problema con $_session

NOTA que PHP es sensible a mayúsculas y minúsculas en los nombres de las variables...

osea, en realidad deberías usar $_SESSION (asi debe ser) y no lo que usas....

lee bien el manual
http://php.net/session
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/07/2009, 15:39
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problema con $_session

Muchisimas gracias por la aclaración, ya no vivo de la programación y sólo lo hago por hobbie y se nota. He conseguido solucionar el problema en parte, pero solo me modifica el valor del array la primera vez que hago "onclick", las siguientes veces que hago onclick en el mismo botón me ignora y muestra el siguiente valor. Necesito que cada vez que pulso el botón más el valor del campo de texto Vb* sume una unidad y no tengo manera, solo lo hace en una ocasión. Es como si el valor que modifico dentro de la funcion del array $_SESSION no saliese al exterior y siempre valiera lo mismo. Muchas gracias por vuestro tiempo. No me importaría hacerlo de otra manera, incluso sin $_SESSION, ya que el valor solo lo manejaré con el fichero php actual, no lo necesito en otra página. Adjunto el código nuevo

<?php
session_start();
mysql_connect("localhost", "****","****");
mysql_select_db( "gestionttpp" );
$result_set = mysql_query( "SELECT * FROM ventas ");

$_SESSION['prueba']=array();

for( $c=0; $c<mysql_num_fields( $result_set ); $c++ ) //leemos los campos para mostrar los botones
{
$_SESSION['prueba'][]=0;
}

require ('xajax_core/xajax.inc.php');

$xajax = new xajax();
$xajax->register(XAJAX_FUNCTION, 'mod_venta');
$xajax->processRequest(); //Procesa cualquier peticion

Function mod_venta($boton,$ope)
{
$respuesta = new xajaxResponse();
if ($ope==1)
{
$Vb="Vb";
$_SESSION['prueba'][$boton]=$_SESSION['prueba'][$boton]+1;
$respuesta->Assign($Vb.$boton,"value",$_SESSION['prueba'][$boton]);
$respuesta->Alert($_SESSION['prueba'][$boton]);
return $respuesta;
}

}



?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Formulario para grabar venta</title>
<?
$xajax->printJavascript("");//cadena vacia para indicar la ruta de xajax/xajax_core/
?>
</head>

<body>
<form id="formulario">
<?php
//$valores=array();
//session_start();
mysql_connect("localhost", "****","****");
mysql_select_db( "gestionttpp" );
$result_set = mysql_query( "SELECT * FROM ventas ");
$datos=$_SESSION['prueba'];
for( $c=0; $c<mysql_num_fields( $result_set ); $c++ ) //leemos los campos para mostrar los botones
{
//creación línea venta
$Vb="Vb".$c;
echo "<input type='button' name='less".$c."' id='less".$c."' value='-' />";
echo mysql_field_name( $result_set, $c );

echo "<input type='button' value='+' name='plus".$c."'id='plus".$c."' onclick='xajax_mod_venta(\"".$c."\",\"1\")'/>";


echo "<input name='".$Vb."' id = '".$Vb."'type='text' width='2' value= '".$datos[$c]."'>";
echo "<br>";

}
?>
</form>
</body>
</html>

Última edición por zunzun; 06/07/2009 a las 15:53
  #4 (permalink)  
Antiguo 06/07/2009, 19:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con $_session

Tema trasladado desde PHP
  #5 (permalink)  
Antiguo 10/09/2009, 18:15
Avatar de rameau1982  
Fecha de Ingreso: febrero-2007
Ubicación: Barcelona
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Problema con $_session

dentro de la funcion mod_venta escribe:

sesson_start();

antes del uso de $_SESSION .....


que vaya bien!
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 00:53.