我被交给了一个cs-cart项目而且我遇到了一些小问题,我想我错过了什么。
给出这个(自解释)代码:
{if $smarty.get.mypin ==""}
OK
{assign var="my_pin_q" value=$smarty.post.mypin}
{else}
NOT OK
{assign var="my_pin_q" value=$smarty.get.mypin}
{/if}
所以我正在检查是否存在get参数,如果我将它保存到本地变量,否则我将保存.post变量(而不是get)。
接下来是:
<input type="hidden" name="mypin" value = "{$my_pin_q}">
(在一种形式的课程中)
手头的问题是由于某种原因,.post.mypin
总是空的,即使它已经正确地通过表单。(我检查了POST请求)。
这是正常的吗? smarty是否将请求变量存储在其他地方?
答案 0 :(得分:1)
您不应使用比较$smarty.get.mypin ==""
。您应该使用isset
代替。下面的代码应该适合你(注意if和else里面的块已经改变了):
{if isset($smarty.get.mypin)}
{assign var="my_pin_q" value=$smarty.get.mypin}
{else}
{assign var="my_pin_q" value=$smarty.post.mypin}
{/if}
Value of PIN: {$my_pin_q}
答案 1 :(得分:0)
请尝试
{assign var="my_pin_q" value=$smarty.request.mypin}