Foros del Web » Programando para Internet » PHP »

Array y boton

Estas en el tema de Array y boton en el foro de PHP en Foros del Web. Hola, mi consulta es como mostrar una nueva frase del array tras apretar el boton siguiente dentro de la misma pagina. Reemplazar el "Tengo 10 ...
  #1 (permalink)  
Antiguo 25/05/2011, 12:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Array y boton

Hola, mi consulta es como mostrar una nueva frase del array tras apretar el boton siguiente dentro de la misma pagina. Reemplazar el "Tengo 10 perritos" por "Solo me quedan 9" y asi sucesivamente. Muchas gracias en lo que me puedan ayudar.

<?php if($_SERVER['REQUEST_METHOD']=="GET"){
$frases = array(
0=>"Tengo 10 perritos",
1=>"Solo me quedan 9",
2=>"Ahora tengo solo 8",
3=>"Solo restan 7",
4=>"Me quedan 6",
5=>"Solo hay 5",
6=>"4 perritos solamente",
7=>"Apurate:Solo 3 perritos",
8=>"Solo un par de perritos",
9=>"Solo un perrito",
10=>"Fin de la historia");
echo $frases [0];
}
?>
<form method="POST">
<input type="button" value="siguiente" />
</form>
<?php if($_SERVER['REQUEST_METHOD']=="POST"){
echo $frases [1];
}
?>
  #2 (permalink)  
Antiguo 25/05/2011, 12:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Array y boton

De algún modo debes cambiar el índice de acceso a tu array, eso lo puedes conseguir mediante una variable que incrementes mientras presionas el formulario.

Una buena idea sería pasar el índice inicial -cero- por un campo hidden, cuando recibes el formulario incrementas su valor y lo pasas de nuevo, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/05/2011, 12:27
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Array y boton

Puedes utilizar la funcion array_shift de PHP que elimina el primer elemento de un array y reorganiza los indices numéricos dejando el segundo elemento en el primer lugar...

Pero si el array es asociativo no rehace los indices y los deja tal cual estan.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 25/05/2011, 12:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Array y boton

Entonces deberia usar array no asociativos y utilizar esa funcion de Array? Y en ese caso, me podrias dar un ejemplo de esa funcion: Por lo que entendi sería, al mandarlo por post, array_ shif $frases y siempre mantendria $frases [1]; Gracias por la ayuda

<?php if($_SERVER['REQUEST_METHOD']=="POST"){
echo $frases [1];
}
?>
  #5 (permalink)  
Antiguo 25/05/2011, 13:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Array y boton

He modificado el Array y le puse la funcion Array_shift pero no me funciona. No conozco del todo dicha funcion por lo que no se si esta bien utilizada. La idea es que al apretar el boton se cambie la frase y asi sucesivamente. Muchas gracias por la ayuda.
<?php if($_SERVER['REQUEST_METHOD']=="GET"){

$frases = array ("Tengo 10 perritos","Solo me quedan 9","Ahora tengo solo 8","Solo restan 7","Me quedan 6","Solo hay 5","4 perritos solamente",
"Apurate:Solo 3 perritos","Solo un par de perritos","Solo un perrito","Fin de la historia");
echo $frases [0];
}
?>
<form method="POST">
<input type="button" value="siguiente" />
</form>
<?php if($_SERVER['REQUEST_METHOD']=="POST"){
$sacar = array_shift($frases);
echo $frases [0];
}
?>
  #6 (permalink)  
Antiguo 25/05/2011, 13:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Array y boton

Sucede que no estás poniendo atención a lo que yo te mencionaba.

PHP es un lenguaje stateless por lo tanto al cargar de nuevo el script se carga todo de nuevo, y no se persisten los cambios entre cargas.

La idea es que de algún modo debes pasar el dato del índice a leer del array, y de alguna forma debes modificarlo a través de las cargas, eso es todo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 25/05/2011, 14:18
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Array y boton

La verdad que no tengo mucha experiencia en este lenguaje y me esta costando. Modifique nuevamente el codigo y me funciona parcialmente pero no logro pasar de la segunda frase. Como hago para muestre todas las frases? Espero su ayuda

<?php if($_SERVER['REQUEST_METHOD']=="GET"){

$frases = array ("Tengo 10 perritos","Solo me quedan 9","Ahora tengo solo 8","Solo restan 7","Me quedan 6","Solo hay 5","4 perritos solamente",
"Apurate:Solo 3 perritos","Solo un par de perritos","Solo un perrito","Fin de la historia" );
echo $frases [0];
}
else if($_SERVER['REQUEST_METHOD']=="POST"){
$frases = array ("Tengo 10 perritos","Solo me quedan 9","Ahora tengo solo 8","Solo restan 7","Me quedan 6","Solo hay 5","4 perritos solamente",
"Apurate:Solo 3 perritos","Solo un par de perritos","Solo un perrito","Fin de la historia" );
echo $frases [1];
}

?>
<form method="POST">
<input type="submit" value="siguiente" />
</form>
  #8 (permalink)  
Antiguo 25/05/2011, 14:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 23
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Array y boton

Por lo menos ahora funciona parcialmente, pero no puedo pasar de la segunda frase. (supongo q me falta algo). Probe con un do pero no funciona tampoco. Utilice el array_shift de respuestas anteriores y funcionó bien. Pero creo q me falta el ultimo empujon qeu no logro descifrar. Saludos y espero su ayuda nuevamente.

<?php if($_SERVER['REQUEST_METHOD']=="GET"){

$frases = array ("Tengo 10 perritos","Solo me quedan 9","Ahora tengo solo 8","Solo restan 7","Me quedan 6","Solo hay 5","4 perritos solamente",
"Apurate:Solo 3 perritos","Solo un par de perritos","Solo un perrito","Fin de la historia" );
echo $frases [0];
}
else if($_SERVER['REQUEST_METHOD']=="POST"){
$frases = array ("Tengo 10 perritos","Solo me quedan 9","Ahora tengo solo 8","Solo restan 7","Me quedan 6","Solo hay 5","4 perritos solamente",
"Apurate:Solo 3 perritos","Solo un par de perritos","Solo un perrito","Fin de la historia" );
$sacar =array_shift($frases);
echo $frases [0];
}

?>
<form method="POST">
<input type="submit" value="siguiente" />
</form>
  #9 (permalink)  
Antiguo 25/05/2011, 15:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Array y boton

Intenta hacer esto:
Código PHP:
<?php
$clave 
= ! empty($_POST['clave']) ? $_POST['clave'] : 0;
?>
<form method="post">
  <input type="hidden" name="clave" value="<?php echo $clave 1?>"/>
  <input type="submit" value="Siguiente"/>
</form>
Clave actual: <?php echo $clave?><br />
<a href="<?php echo $_SERVER['PHP_SELF']; ?>">resetear</a>
Ejecuta dicho script y presiona el botón tantas veces como desees.

Esta es la técnica que te vengo indicando desde el inicio.

Así es como se puede incrementar dicho valor a través de múltiples recargas del documento, como puedes observar la clave se inicializa en cero en caso de no existir en el post; a su ves imprimimos el nuevo valor incrementado para así recuperarlo posteriormente, etc.

Solo te resta leer bien el código, analizarlo, reflexionar y adaptar el concepto a tu script.

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: botones
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 12:10.