Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Asignar variables POST a smarty (http://www.forosdelweb.com/f68/asignar-variables-post-smarty-586407/)

scout_vlc 14/05/2008 10:20

Asignar variables POST a smarty
 
Hola!

Estoy haciendo una web que utilice smarty. Sé hacerlo con PHP, pero no con plantillas, y mi duda es ¿no puedo hacer esto?:

Código PHP:

$smarty.post.page('numero''$numero'); 

o esto ??
Código PHP:

$smarty->assign('numero''$numero'); 

o sino esto:
Código PHP:

$smarty->assign('clave''$_POST['clave']'); 

Por que quiero, tras enviar uin formulario, salgan los datos enviados, como una página de confirmación.
¿Cómo puedo asignar a una variable smarty, el valor de una varible de POST?
Muchas gracias

Àlex

GatorV 14/05/2008 10:51

Re: Asignar variables POST a smarty
 
Lo mejor seria la tercera opción, pero debes de pasar la variable así:
Código PHP:

$smarty->assign('clave'$_POST['clave']; 

Saludos.

scout_vlc 15/05/2008 04:40

Re: Asignar variables POST a smarty
 
Hola,
me da este error, al enviar el formulario :

Fatal error: Call to undefined function page() in C:\wamp\www\discos\entradas\confirm.php on line 58


confirm.php

Código PHP:

<?php 

$smarty
.post.page('numero'$_POST['numero']); //esta es la linea 58
$smarty->assign('clave'$_POST['clave']);  
$smarty->assign('numero'$_POST['$numero']);
$smarty->assign('nomcd'$_POST['nomcd']);
$smarty->assign('pvp'$_POST['pvp']);
$smarty->assign('nomcia'$_POST['nomcia']);
$smarty->assign('cant'$_POST['cant']);

$smarty->display('confirm.tpl');

?>


GatorV 15/05/2008 09:42

Re: Asignar variables POST a smarty
 
Tienes un error de sintaxis, ya que no puedes hacer eso que pones de $smarty.post.page, los objetos con PHP se acceden con ->, o si son estáticos los accesas con ::.

Saludos.

krasburn 15/05/2008 09:59

Re: Asignar variables POST a smarty
 
Me da la impresion de que tienes otro error a la hora de pasar $numero

Lo estas haciendo asi:

$smarty->assign('numero', '$numero');

Debes pasar $numero sin las comillas simples, asi:

$smarty->assign('numero', $numero);

scout_vlc 16/05/2008 02:57

Respuesta: Asignar variables POST a smarty
 
Me estoy volviendo loco....porque ahora me da el siguiente error:

Fatal error: Call to a member function assign() on a non-object in C:\wamp\www\discos\entradas\confirm.php on line 76

El código que tengo es:


Código PHP:

$clave  $_GET['clave'];
$numero $_GET['numero'];
$nomcd  $_GET['nomcd'];
$pvp    $_GET['pvp'];
$nomcia $_GET['nomcia'];
$cant   $_GET['cant'];


$smarty->assign('clave'$clave);
$smarty->assign('numero'$numero);
$smarty->assign('nomcd'$nomcd);
$smarty->assign('pvp'$pvp); 


Pero lo mismo cuando he usado POST:

Código PHP:

$smarty.post.page('numero'$_POST['numero']);
$smarty->assign('clave'$_POST['clave']);  
$smarty->assign('numero'$_POST['$numero']);
$smarty->assign('nomcd'$_POST['nomcd']);
$smarty->assign('pvp'$_POST['pvp']);
$smarty->assign('nomcia'$_POST['nomcia']);
$smarty->assign('cant'$_POST['cant']); 


GatorV 16/05/2008 08:37

Respuesta: Asignar variables POST a smarty
 
Comprueba que hayas iniciado el objeto $smarty, y como te comento, debes de estudiar la sintaxis de PHP, antes de empezar a programar, ya que el código que pones en: $smarty.post.page es incorrecto, así no es la forma correcta de llamar a un método de un objeto.

Saludos.

krasburn 23/05/2008 06:41

Respuesta: Asignar variables POST a smarty
 
Para resolver tu problema debes hacer esto:

Crea dentro del directorio de smarty un fichero que se llame smarty.inc que contenga lo siguiente:

Código PHP:

<?php 
    
include('libs/Smarty.class.php');
    
    class 
CustomSmarty extends Smarty{

       
//Constructor
       
public function __construct($config_path)
       {
             
parent::__construct();
             
$this->template_dir $config_path 'smarty/templates/';
             
$this->compile_dir $config_path 'smarty/templates_c/';
             
$this->config_dir $config_path 'smarty/conf/';
             
$this->cache_dir $config_path 'smarty/cache/';
             
$this->compile_check true;   
       }
     }
?>

Luego en el script en el que estas capturando los valores que vienen por GET haces lo siguiente:

Nota: Entre los parentesis de CustomSmarty() tienes que pasar la ruta hasta la raiz del sitio. Por ejemplo, si te encuentras en index.php no necesitas pasar ninguna ruta pq aqui ya estas en la raiz del sitio. En ese caso quedaria asi:


Código PHP:

include('smarty/smarty.inc');
$smarty = new CustomSmarty('');

$clave  $_GET['clave'];
$numero $_GET['numero'];
$nomcd  $_GET['nomcd'];
$pvp    $_GET['pvp'];
$nomcia $_GET['nomcia'];
$cant   $_GET['cant'];


$smarty->assign('clave'$clave);
$smarty->assign('numero'$numero);
$smarty->assign('nomcd'$nomcd);
$smarty->assign('pvp'$pvp); 

Salu2s y espero que te sirva.


La zona horaria es GMT -6. Ahora son las 11:40.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.