Comunidad de diseño web y desarrollo en internet online

Pasar el resultado de una función a otra página

Citar            
MensajeEscrito el 10 Dic 2015 09:37 am
Hola a tod@s
Empezaré diciendo que mi nivel de php es muy básico, estoy empezando.
En la página index.php tengo un array con distintos pesos, otra página paginar.php donde muestro la información, pagino y demás y una tercera gtos_envio.php donde tengo una función que recibe la variable peso de paginar.php y según el peso debe mostrar el importe que le corresponda, pues no consigo pasar dicho resultado a la página paginar.php y que lo muestre en el lugar correspondiente, en la variable $importe

index.php

Código PHP :

 <?php   
   include_once 'paginar.php';
   include_once 'gtos_envio.php';   
     $datos = array
                     (
                         array(50),
                         array(320),
                         array(800),
                         array(1200)                   
                     );
 ?> 
 <?php      
     paginar($datos);    
 ?>

paginar.php

Código PHP :

  <?php
    
     function paginar($datos) {       

     // MOSTRAMOS LOS ITEMS RESPECTIVOS    
     echo '<br>';
          echo '<div id="resultados">';
        
           for ($i=$inicio; $i<$final; $i++) {            
      
      $peso = $datos[$i][0];

      //Aquí se supone que recupero el resultado de la función   
      $importe = $_GET['mivariable'];

 //Envío la variable peso a  la función redirecciona en la página gtos_envio.php
redirecciona($peso);

      //Si el campo peso tiene contenido lo muestro, si no, no muestro nada
      if (!empty($peso)) {                                                     
         $mostrarPeso = "<div>PESO &nbsp;&raquo;" .$peso. " grs.</div>
      //Y aquí en $importe debería recuperar y mostrar el resultado de la función redirecciona
      <div>Gtos. de envío*&nbsp;" .$importe. " &euro;</div>";      
      }else{
         $mostrarPeso = "";         
      }         
         if (isset($datos[$i]))   

            echo "".$mostrarPeso.""; 
         else
            break;
           }
         echo '</div>';
         echo '<br>';    
    
     return; 
   
        }
 ?>

gtos_envio.php

Código PHP :

 <?php
function redirecciona($peso){   
   
   $impGtos = "";
      if ($peso > 0 && $peso <= 20) {
         $impGtos = 2.84;               
      } else if ($peso > 20 && $peso <= 50) {
         $impGtos = 2.97;    
      } else if ($peso > 50 && $peso <= 100) {
         $impGtos = 3.34;    
      } else if ($peso > 100 && $peso <= 500) {
         $impGtos = 4.45   
      } else if ($peso > 500 && $peso <= 1000) {
         $impGtos = 7;   
      } else if ($peso > 1000 && $peso <= 2000) {
         $impGtos = 7.61;    
      }
      
      echo $impGtos;     
      return $impGtos; 
 }
//Y aquí se supone que envío el resultado de la función a la página paginar.php
$importe = redirecciona();
$_GET['mivariable'] = $importe;
 ?>

Por pedromir

29 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 11 Dic 2015 11:13 pm
Saludos,
una de las formas para enviar variables entre las paginas es enviarla por la url ( pagina.php?id=$variable ) y la pagina que recibe utilizas $_GET['id'] o también pudieras utilizar las variables de sesión $_SESSION['nombre_variable'], investiga cualquiera de los dos métodos y comenta por si necesitas alguna otra cosa

Atte.: Mario

Por mario22121985

88 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Dic 2015 07:18 pm
Hola, en primer lugar gracias por contestar, el problema que tengo no es al pasar variables, lo hago con $_GET['mivariable'] pero he aprovechado para probar con las variables de sesión, para aprender más cosas y también funciona perfectamente, el problema lo tengo al sacar la variable $impGtos que es el resultado de la función redirecciona y pasar luego esta variable a través de cualquiera de los métodos comentados a la página paginar.php, si yo ejecuto la función y pongo dentro de esta echo $impGtos me imprime los resultados, pero si yo pongo el echo fuera de la función ya no hay manera de que imprima la variable y por eso no puedo pasarla a ningún sitio, no sé si es un problema de la función o de qué

Por pedromir

29 de clabLevel



 

mozilla
Citar            
MensajeEscrito el 16 Dic 2015 11:30 pm
por lo que puedo entender es que cuando llegas aqui:

$importe = redirecciona();
$_GET['mivariable'] = $importe;

estas grabando en la variable $importe el resultado de la funcion redirecciona, pero no le estas enviando parametro alguno, intenta cambiando esa linea por esta solo para efectos de prueba:

$importe = redirecciona(16);

y luego realiza un echo $importe, si te imprime en panta el resultado solo cambia el numero 16 por la variable de $peso

cualquier duda o consulta colocalo en los comentarios y te podremos seguir ayudando

Por mario22121985

88 de clabLevel



 

chrome
Citar            
MensajeEscrito el 18 Dic 2015 08:51 am
Si pongo esto $importe = redirecciona(16); funciona perfectamente y me muestra el importe
Pero si como dices le cambio el número 16 por la variable $peso ya no funciona, no muestra nada y es curioso porque dentro de la función tengo puesto echo $impGtos; y cuando ejecuto la función me muestra los importes perfectamente, esto quiere decir que el contenido de la variable peso llega desde la página paginar.php sin problemas a la función redirecciona

Por pedromir

29 de clabLevel



 

mozilla

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.