我有一个使用foreach
的CodeIgniter网络应用程序,用于user
插入数据,如果提交的数据已成功插入,我创建了一个名为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
上,因此我无需在视图中使用FOR
或FOREACH
来调用它。
问题出在我的控制器上,我正在尝试设置消息:
$this->session->set_flashdata('message', $sc_msg);
这只是打印数组,所以我尝试将$sc_msg
更改为$sc_msg[]
,结果是错误:无法使用[]
进行阅读。
我也试图在foreach
内使用set_flashdata
并且失败了。出乎意料的预言。
然后我试图像这样设置flashdata:
$this->session->set_flashdata('message', $sc_msg[0].$sc_msg[1]);
这会打印结果,但只打印索引0
和索引1
。结果:
- 用户
abc
已成功注册- 用户
bca
已成功注册
还有另外两条消息没有为用户qwe
和ewq
调用。
我不知道如何在flashdata
内调用该消息。但是,请不要给我 for loop
解决方案。谢谢。
答案 0 :(得分:1)
我看到了一种简单的方法来做锌。
sc_msg[]
上的邮件已用<br>
表示下一行。好的,所以你需要做的就是不要在flashdata中使用foreach。但是使用foreach来附加消息中的字符串。
foreach ($sc_msg as $sm)
{
$msg = $msg.$sm; // OR using $msg .= $sm;
}
$this->session->set_flashdata('message', $msg);
你可以尝试一下,如果你有另一种方法来附加字符串它是好的。我给你一个简单的例子。