首页 > 解决方案 > Smarty 变量不会从 Javascript 内部更改

问题描述

我有一个 smarty 变量分配给 false。然后在 Javascript 中,我将运行一个函数来返回 smarty 变量是否应该更改为 true 或保持为 false。目前我总是得到elsejsif语句的一部分。

这是一个非常简单的例子,但它明白了……如果生成的随机数1将 smarty 变量更改为 true,否则将其保持为 false。

{assign var= "testB" value= false }

<script language="JavaScript" type="text/JavaScript">
{literal}
   let randNum = Math.round(Math.random());
   if(randNum == 1){
      {/literal} "{$testB = true}" {literal}
   } else {
      {/literal} "{$testB = false}" {literal}
   }
   console.log( randNum );
   console.log( {/literal} "{$testB}" {literal} );
{/literal}
</script>

我错过了什么?这是漫长的一天,所以这可能是我想念的非常明显的东西:-)

谢谢

更新:

如果我console.log()在 if 语句中运行,他会告诉我它正确地遍历了 if 语句,但是 smarty 变量将始终更改为 false,或者我在{else}.

let randNum = Math.round(Math.random());
if(randNum == 1){
  {/literal} "{$testB = true}" {literal}
  console.log('here');
} else {
  {/literal} "{$testB = false}" {literal}
  console.log('here2');
}

因此,使用上面的代码,如果randNum为 1,它将控制台记录“此处”,但 smarty 变量将为 false - 或者我在{else}.

标签: javascriptphpvariablessmarty

解决方案


推荐阅读