我有一个聪明的插件,不会在我的模板中填充我的下拉框。
这是我的function_candidates.php代码:
<?php
function smarty_function_candidates(array $parameters, Smarty_Internal_Template $smarty)
{
$sql = "SELECT first_name, last_name, id, candidate FROM wmmw.main_members WHERE candidate='1'";
$result = mysql_query($sql)
or die("Couldn't execute user query.");
foreach ($result as $row){
$candidates[] = array(
"fname" => $row["first_name"],
"lname" => $row["last_name"],
"id" => $row["id"],
"candidate" => $row["candidate"]);
}
$smarty->assign("candidates", $candidates);
}
?>
这是我的模板代码:
<section>
{candidates}
<label for="candidate">Candidate</label>
<div>
<select name="candidate" id="candidate">
<optgroup label="candidate">
{foreach item=c from=$candidates}
<option name="candidate" value="{$c.fname}">{$c.fname}</option>
{/foreach}
</optgroup>
</select>
</div>
</section>
显示下拉框,但不会写入任何值。 我在这里错过了什么?任何帮助表示赞赏...
的Tx
答案 0 :(得分:0)
你不能只使用带有mysql_query
返回值的普通foreach循环。使用mysql_fetch_assoc
while($row = mysql_fetch_assoc($result)) {
$candidates[] = array(
"fname" => $row["first_name"],
"lname" => $row["last_name"],
"id" => $row["id"],
"candidate" => $row["candidate"]);
}