我正在尝试使用Smarty自动将数据插入textarea
。
将插入两行。以下是插入内容的示例:
John Doe
Level 1, Support Tech
显然,每个名字都有一个与之相关的位置。
我想它应该是这样的:
$array-names = array("John Joe", "Jane Doe", "Random Name");
$array-positions = array("Level 1, Support Tech", "Level 2, Sales Staff", "Level 2, Billing Team");
然后我只需要随机选择一个自动插入 - 但它们需要匹配。例如,John Doe
应始终列出Level 1, Support Tech
。
在Smarty做这样的事情还是在完全错误的轨道上......?
答案 0 :(得分:0)
你可以在php中使用rand(0, count($array-names)-1)
,将其传递给smarty并将其用作Smarty中数组的键。
答案 1 :(得分:0)
你不能按照你描述的顺序在Smarty中创建一个数组
然后在smarty中使用以下方法来显示数组,例如:
<?php
//an organized array with names and positions that match
$array_names_positions = array(1 => array('Name' => 'John Doe', 'position' => 'Level 1, Support Tech'),
2 => array('Name' => 'Jane Doe', 'position' => 'Level 2, Sales Staff')
3 => array('Name' => 'Random Name', 'position' => 'Level 2, Billing Team')
);
//assign the array to $items var
$smarty->assign('items', $array_names_positions);
//draw a textarea and display the array, (you can work on your display mechanism to limit or to display all here
<textarea>
{foreach from=$items key=myId item=i}
{$i.name}: {$i.position}
{/foreach}
</textarea>
当你说随机选择一个自动插入时,你可以在textarea中随机显示一个并有一个提交按钮将该记录保存到db。
如果你想随机分配,你可以使用 $ array_names_positions [mt_rand(0,计数($ array_names_positions)-1)] 洗牌
您可以将php代码放在.tpl文件中;当你在一个聪明的模板文件中插入PHP代码时。一定要使用:
{php}
//php code here
{/php}
在你聪明的模板中。不要将太多的PHP代码与模板文件混在一起;它违背了模板的目的,以保持平衡。如果php代码有很多逻辑,你应该把它放在一个聪明的控制器中。