php - 从前端动态发送变量到 smarty 后端

标签 php mysql smarty

我正在尝试从 smarty 前端动态发送一个变量从 foreach 到 smarty 后端,但不适用于所有变量,它只显示一个...有办法实现吗? 这是我的代码:

后端:

    $allineamento = array();
    foreach($db->query("SELECT Fields FROM Tables WHERE Allineamento = :allineamento ORDER BY ID",array("allineamento"=>$smarty->getTemplateVars('all'))) as $row){
        $allineamento[] = $row;
    }
    $smarty->assign("allineamento",$allineamento);

前端:

    {foreach $maps as $r}
        {assign var="all" value="$r.ID"}
        <div class="panel panel-default">
            <div class="panel-heading">
                <img src="img/locations/{$r.Immagine}" class="img-rounded">
                <a class="panel-title" data-toggle="collapse" data-parent="#panel-1" href="#panel-element-{$r.ID}">{$r.Nome}</a>
            </div>
            <div id="panel-element-{$r.ID}" class="panel-collapse collapse">
                {foreach $allineamento as $a}
                    <div class="panel-body">{$a.Nome}</div>
                {/foreach}
            </div>
         </div>
    {/foreach}

输出是这样的(重复字段):

1. FIELD 1        
     ° SECOND FOREACH A
     ° SECOND FOREACH B
     ° SECOND FOREACH C

 2. FIELD 2
     ° SECOND FOREACH A
     ° SECOND FOREACH B
     ° SECOND FOREACH C

Inseted of(不同字段由后端正确查询):

1. FIELD 1        
     ° SECOND FOREACH A
     ° SECOND FOREACH B
     ° SECOND FOREACH C

 2. FIELD 2
     ° SECOND FOREACH D
     ° SECOND FOREACH E
     ° SECOND FOREACH F

提前谢谢你。

最佳答案

我可能弄错了,但我相信您必须将数据作为数组传递。因此,例如,如果您的前端需要一个数组(如 $allineamento),那么您的后端必须将此数组作为您传递的主 $data 数组的子项发送。此外,您没有告诉我们 $db 是什么,但我假设它是一个 mysqli 对象,在这种情况下,您需要使用 fetch_assoc() 获取数据,然后 while 遍历每个数据。像这样重做:

$result = $db->query("SELECT Fields FROM Tables WHERE Allineamento = :allineamento ORDER BY ID");


if ($result->num_rows > 0) {
    // output data of each row
    $allineamento = array();
    while($row = $result->fetch_assoc()) {
        $allineamento[] = $row;
    }

    $data = array('allineamento' => $allineamento);

    $smarty->assign($data);
    // display it
    $smarty->display('index.tpl');
}

关于php - 从前端动态发送变量到 smarty 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536465/

相关文章:

c# - 本地主机上的 asp.net cookie 安全失败

php - 使用 PDO 将对象条目插入数据库

php - 从数据库中回显嵌入的 YouTube 视频

php - 如何将带有撇号的动态文本数据插入到sql中

mysql - 合并 2 个表和 GROUP BY 日期

php - 如何在 Smarty 中合并两个字符串?

php - 通过PHP删除未在mysql数据库中列出的文件夹中的图像

javascript - 获取 SQL 表值的最有效方法是什么?

php - 在后台搜索产品,例如输入 >=3

php - Smarty模板变量在哪里定义?