Programación Web y Scripting > PHP

 Paso de arrays

(1/1)

Kyrylys:
Hola de nuevo^^

tengo un pequeño problemilla trabajando con el paso de arrays entre funciones en php

en este caso he consegido pasar el array  a una funcion a trave´s de un formulario que recarga la pagina.

--- Código: Text ---<?php//devolvera el contenido del arrayfunction con_array($v){    foreach($v as $valor)        echo($valor."<br>");        echo("adios");    return $v;}  //creo el array    $v[0]="0";    $v[1]="A";    $v[2]="b"; //muestro el boton y paso el array para que se reciba en la misma paginaecho("<form name='formu'  method='post' action='index.php?op=1'><input type='submit' value='ok' name='ok'><input type='hidden' value='$op' name='op'><input type='hidden' value='el arrray' value=$v></form>");//miro si $op tiene valor, si lo tiene es que el boton ha sido pulsadoswitch($op){//caso que si llama a con_array    Case op==1:    echo("HOla");    con_array($v);//caso que no     Default:        echo("No hay nada<br>");                }>? 
El problema es que se visualiza todo


--- Citar ---[BOTON]
HOla0
A
b
adiosNo hay nada
--- Fin de la cita ---

tanto si lo pulso como si no

esto que parece una tonteria quiero que me sirva para otra cosilla, a ver si simplificando veo los fallos
gracias.

shadow_rev:
Al final de un case, siempre debes poner un break (a menos que esté de último):

--- Código: PHP ---switch($variable){  case 'valor1':    // Accion a realizar    break;  case 'valor2':    // Otra accion    break;  default:    // accion por defecto} 
:suerte:

Kyrylys:
cierto, gracias... hay dias que porque tengo la cabeza sobre los hombros XD

aún así muestra el array antes de pulsar el boton : (

he probado también con $_POST y  es lo mismo...

shadow_rev:
Ahora que entro a ver con detalle el código, veo algunas cositas:

1. $op no lo declaras en ninguna parte. A menos que tengas register_globals en on (php.ini, poco recomendable), deberías llamarla con $_GET['op']
2. case op==1: ?? de verdad creo que no era tu día cuando escribiste eso :P

Yo lo haría así:

--- Código: PHP ---if(isset($_GET['op']) && $_GET['op'] != ''){  echo 'Hola<br />';  con_array($v);}else{  echo 'No hay nada';} 
Si lo deseas hacer con switch, en vez de poner case op==1: pon case 1: o case '1':

:suerte:

Kyrylys:
Muchisimas gracias ^^
 :wacko:  si... a veces soy un despiste conpatas...sorry

Un saludo  :good:

Navegación

[0] Índice de Mensajes

Ir a la versión completa