0

我收到了一个 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 是否将请求变量存储在其他地方?

4

2 回答 2

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}
于 2014-07-29T08:26:30.107 回答
0

请试试

{assign var="my_pin_q" value=$smarty.request.mypin}
于 2014-07-30T05:10:19.070 回答