Boa*_*rdy 8 javascript php smarty
我试图用smarty做一些javascript并使用javascript变量并检查该值是否包含在smarty数组中.
以下是我的代码
if (object.data[i].Application === selectedApplication || {if isset($Applications) && $Applications|@count > 0} true {else} false {/if})
{
{if not isset($Applications)}
$("#cboApplications").append("<option selected value=\""+object.data[i].id+"\">"+object.data[i].Application+"</option>");
{else}
{if '9'|in_array:$Applications}
console.log("id " + id + " in array");
$("#cboApplications").append("<option selected value=\""+object.data[i].id+"\">"+object.data[i].Application+"</option>");
{else}
console.log("id " + id + " not in array");
$("#cboApplications").append("<option value=\""+object.data[i].id+"\">"+object.data[i].Application+"</option>");
{/if}
{/if}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是{if '9'|in_array:$Applications}.目前我已经硬编码了值而不是使用javascript变量作为测试,但我得到了相同的结果.
下面是从smarty内部打印时阵列的样子
array (
0 => '9',
)
Run Code Online (Sandbox Code Playgroud)
此列表框中有多个值,cboApplications其值为8,5,6,9和10.
出于某种原因,尽管$ Applications数组中只有9个,但是console.log就好像每个项目都在数组中,而不仅仅是9.
感谢您的任何帮助,您可以提供.
您必须{literal}在 Smarty for JavaScript 中使用。例子:
{literal}
<script type="text/javascript">
document.write("{/literal}{$text}{literal}");
</script>
{/literal}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Smarty 文档。