【问题标题】:CodeIgniter - How to set array flashdata and call the message?CodeIgniter - 如何设置数组 flashdata 并调用消息?
【发布时间】:2017-12-10 10:52:25
【问题描述】:

我有一个 CodeIgniter Web 应用程序使用 foreachuser 插入数据然后如果提交的数据被成功插入,我创建了一个名为 sc_msg[] 的 flashdata 消息。但我不知道如何在 flashdata 上调用它。

$user = $this->input->post('user', TRUE);
foreach ($user as $u)
{
   $this->model->insert($u);
   $sc_msg[] = '- User '.$u.'has been successfully registered<br>';
}

这是我在视图中调用它的代码。

<?php if ($this->session->flashdata('warning'))
        echo $this->session->flashdata('message'); ?>

我想要这样的消息:

  • 用户abc已成功注册
  • 用户bca已成功注册
  • 用户qwe已成功注册
  • 用户ewq已成功注册

所有sc_msg[] 都存储在message 上,所以我不需要在视图中使用FORFOREACH 来调用它。

问题出在我的控制器上,我正在尝试设置消息:

$this->session->set_flashdata('message', $sc_msg);

它只是打印数组,所以我尝试将$sc_msg更改为$sc_msg[],结果错误:无法使用[]进行读取。

我也尝试在set_flashdata 中使用foreach,但失败了。意外的 foreach。

然后我尝试像这样设置 flashdata:

 $this->session->set_flashdata('message', $sc_msg[0].$sc_msg[1]);

这是打印结果,但只有索引0 和索引1。结果:

  • 用户abc已注册成功
  • 用户bca已注册成功

还有 2 条消息未调用用户 qweewq

我不知道如何调用flashdata 中的消息。但是,请不要给我 for loop 解决方案。谢谢。

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    我看到了一种简单的方法来做到这一点。

    您在sc_msg[] 上的消息已在下一行使用&lt;br&gt;。好的,所以您需要做的不是在 flashdata 中使用 foreach。但是使用 foreach 从消息中附加字符串。

    foreach ($sc_msg as $sm)
    {
        $msg = $msg.$sm; // OR using $msg .= $sm;
    }
    
    $this->session->set_flashdata('message', $msg);
    

    您可以尝试一下,如果您有其他附加字符串的方法,那很好。我只是给你一个简单的例子。

    【讨论】:

    • 你又在帮我了,辛迪!非常感谢!
    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多