Foros del Web » Programando para Internet » PHP »

Modificar una variable en el mismo fichero .php

Estas en el tema de Modificar una variable en el mismo fichero .php en el foro de PHP en Foros del Web. Hola, Estoy intentando modificar el valor de una variable al pulsar un botón. Quiero que se muestre el contenido de la misma después de pulsarlo. ...
  #1 (permalink)  
Antiguo 19/06/2013, 16:32
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 1
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Modificar una variable en el mismo fichero .php

Hola,

Estoy intentando modificar el valor de una variable al pulsar un botón. Quiero que se muestre el contenido de la misma después de pulsarlo. Me gustaría hacerlo en un único fichero PHP.

El código es muy sencillo y es el siguiente:

Código PHP:

<?
    
if(!isset($_POST["sumar"])) {
        
$cantidad 0;
    }
    if(isset(
$_POST["sumar"])) {    
        
$cantidad+=10;
    }
?>
<h1>La variable vale <?=$cantidad?>.</h1>
<form name="form1" method="post" action="sumar.php">
  <input type="submit" name="sumar" id="sumar" value="Sumar">
</form>
Mi intención al usar isset es:
1. Si es la primera vez que se carga la página entonces se inicializa la variable a 0.
2. Si no es la primera vez, es porque se ha pulsado el botón (y se inicializa $_POST), por lo que podré modificar el valor de la variable.

Al pulsar el botón no recuerda el valor de la variable y el navegador me muestra un mensaje que dice así:

Código:
Notice: Undefined variable: cantidad in C:\xampp\htdocs\AdivinarPHP\AdivinarPHP.php on line 6
¿De qué manera puedo conseguir lo que pretendo?


Muchas gracias de antemano,

Luis
  #2 (permalink)  
Antiguo 19/06/2013, 16:51
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: Modificar una variable en el mismo fichero .php

es cuestion de logica

cuando pulsas y existe :

Cita:
//aqui no entra
if(!isset($_POST["sumar"])) {
$cantidad = 0;
}

//aqui entra pero dice que incremente $cantidad pero quien es cantidad??
if(isset($_POST["sumar"])) {
$cantidad+=10;<<<<--- esto es igual a $cantidad=$cantidad+10;

}
al cambiar $cantidad+=10; por $cantidad=10; se compondra
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 19/06/2013, 17:00
Avatar de nicolasberro  
Fecha de Ingreso: junio-2013
Mensajes: 14
Antigüedad: 10 años, 10 meses
Puntos: 1
Respuesta: Modificar una variable en el mismo fichero .php

No entiendo.
Si vos haces la suma en 'sumar.php'... por que imprimis la variable en AdivinarPHP.php? Lo mejor que podes hacer es utilizar sesiones.
Fijate igualmente creo que esto tiene que funcionar:

Código PHP:
<?php
if(!isset($_POST['sumar'])){
    
$cantidad 0;
}else if(isset(
$_POST['cantidad'])){
    
$cantidad $_POST['cantidad'];
    
$cantidad $cantidad 10;
}
echo 
'<h1>La cantidad es ' $cantidad ' </h1>';
echo 
'<form name="form1" method="POST" action=""> 
    <input type="hidden" name="cantidad" value="' 
$cantidad '">
  <input type="submit" name="sumar" id="sumar" value="Sumar"> 
</form>'
;
  #4 (permalink)  
Antiguo 19/06/2013, 17:03
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Modificar una variable en el mismo fichero .php

No sería mas bien....

Código PHP:
Ver original
  1. <?php
  2.  
  3. $cantidad = isset($_POST['cantidad']) ? $_POST['cantidad'] : 0;
  4.  
  5. if (isset($_POST['sumar'])) {
  6.      $cantidad+=10;
  7. }
  8. ?>
  9. <h1>La variable vale <?=$cantidad?>.</h1>
  10. <form name="form1" method="post" action="sumar.php">
  11.   <input type="submit" name="sumar" id="sumar" value="Sumar">
  12. </form>

Por ultimo, evita usar short-tags (<?) y usa el tag completo (<?php) por cuestiones de compatibilidad, ya que si la opción short_open_tag esta deshabilitada en el php.ini tu código no funcionará
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 19/06/2013, 17:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 11
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Modificar una variable en el mismo fichero .php

Prueba con esto:
El problema como dijo PirruMan, es que en el segundo caso $cantidad no fue correctamente inicializada. Por lo tanto al hacer:

Código:
    if(isset($_POST["sumar"])) {     
        $cantidad+=10; // Al hacer esto 
    }
Hay dos problemas:

1. Estas utilizando una variable que no tiene nada (no fue inicializada).
2. La variable $cantidad, que por lo que veo la queres utilizar para ir acumulando los valores sumados, esa variable ($cantidad), se CREA cuando se ejecuta el codigo php y se destruye cuando termina el codigo PHP. Por lo tanto la proxima vez que ejecutes el programa (o bien que le des F5 a tu navegador, lo mismo que hacer submit) la variable se volverá a inicializar en cero. Me explico? Necesitas que esa variable se guarde como variable global. Puedes utilizar $_SESSION o un valor oculto como la etiqueta hidden. O algo que permita que tu variable "viva" durante toda la ejecución del programa y no solo en cada "submit" realizado.

Por lo pronto, sin tener en cuenta el punto dos, el programa debería funcionar de la siguiente forma:

Código:
<? 
    $cantidad = 0;                       // La variable es cero, si es la primera vez, es cero.
                                                // y si hizo submit la inicializamos para poder utilizarla despues.

    if(isset($_POST["sumar"]))  // Hizo submit. Entonces sumamos $cantidad(q va a ser 0) + 10
    {     
        $cantidad= $cantidad + 10; 
    } 
     echo "<h1>La variable vale: ".$cantidad."<h1>";
?> 
<form name="form1" method="post" action="sumar.php"> 
  <input type="submit" name="sumar" id="sumar" value="Sumar"> 
</form>
  #6 (permalink)  
Antiguo 19/06/2013, 18:58
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 11 meses
Puntos: 832
Respuesta: Modificar una variable en el mismo fichero .php

Cita:
Iniciado por luisgomezcaballero Ver Mensaje
Código PHP:
<?
    
if(!isset($_POST["sumar"])) {
        
$cantidad 0;
    }
    if(isset(
$_POST["sumar"])) {    
        
$cantidad+=10;
    }
?>
Intenta así:

Código PHP:
Ver original
  1. $cantidad = isset( $_POST['sumar'] ) ? $_POST['sumar'] + 10 : 0;

Etiquetas: fichero, modificar, variable
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 20:17.