【问题标题】:php if statement inside a css classcss类中的php if语句
【发布时间】:2021-09-30 14:38:50
【问题描述】:

当我尝试从 Laravel controller 返回 JSON 响应时,我尝试在类中使用 if 语句,但我没有收到错误,但没有任何效果我试试这个:

foreach($active_users as $user) {
    $output.='<tr>'.
        '<td>'.
            '<h2><a>'
                .$user->name.
            '</a>'.'</h2>'.
        '</td>'.
        '<td>'.$user->created_at.'</td>'.
        '<td>'.$user->classe->classe_name.'</td>'.
        '<td>'.$user->ville.'</td>'.
        '<td>'.$user->phone_number.'</td>'.
        '<td> <span class=' ."<?php if($user->active == 'active') { echo 'bg-primary-light' }
                     ?>" .'</span>'.
        '</td>'.
    '</tr>';
    return Response($output);
}

【问题讨论】:

    标签: json ajax laravel


    【解决方案1】:

    您可以在字符串中使用三元运算符而不是完整的 if else 块,并且控制器类中的字符串引号内不需要 &lt;PHP&gt;echo

    改变这一行

    '<td> <span class=' ."<?php if($user->active == 'active') { echo 'bg-primary-light' }
                     ?>" .'</span>'.
    
                    '</td>'
    

    喜欢这个

    '<td> <span class="' .$user->active == "active"?"bg-primary-light":"".'"></span></td>'
    

    尝试像这样使用并使用ajax附加到代码中。

    【讨论】:

    • 你错过了跨度中的结束 '>',就像 op 一样
    • @moussa 尝试打印 dd($user->active);在此字符串操作开始之前,请检查它是否返回“活动”
    • @N69S 的想法已传达。他必须找到将其包含在代码中的方法。
    • @Unnik 我应该放在哪里> 我尝试了不同的地方它似乎不起作用你能修改答案吗' '。我试试这个
    • @moussa 它已经编辑过了,您也可以从我的答案中复制/粘贴代码。它也应该工作
    【解决方案2】:

    您的分隔符设置错误以使 html 有效

    '<td> <span class="' .($user->active == 'active')?'bg-primary-light':''.'">'.
    '</span>'.
    

    【讨论】:

      【解决方案3】:

      对于复杂且冗长的 HTML 模板,建议使用 BladeTemplate,因为 PHP 与点符号的连接非常麻烦。在 Blade 模板中处理逻辑和循环更容易。然后在控制器中就可以了

      return view('view.example')->render();
      

      我试过你的控制器,最终结果是一样的,更省事,更易于管理

      【讨论】:

      • Pham 但我正在对 keyup 事件进行此搜索,并且我只返回视图的一部分而不是所有页面我如何呈现 html 表格部分
      • @moussa 没错! render() 助手将视图作为 HTML 返回而不重新加载页面。并且返回的视图仅包含需要更新的“部分”。假设您通过 AJAX 发出请求,在“成功”事件中,从那时起,它是相同的:显示返回的 HTML。如果您对我刚刚描述的内容一无所知,以下是步骤: 1. 创建一个包含 元素的新视图 2. 在处理请求的控制器中:替换 foreach: return view('view.example', compact('active_users'))-&gt;render(); 3 . 在视图中:像往常一样使用 Blade 语法:@foreach
      • 如果您想为每个 $user 使用return,请将 foreach 循环放在控制器而不是视图中。所以foreach($active_users as $user){ return view('view.example', compact('user'))-&gt;render(); }
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签