我想在Drupal 7
模块中创建统计页面。但为此我实际上需要在foreach
内进行array
..我认为这是不可能的,但我对此并不是百分之百确定。
这是我目前的代码(没有工作,连接错误等等。)
有没有人知道这是否可行,并且可以给出一些示例如何做到
我的代码:
$id = $_GET['id'];
$query = db_query('SELECT * FROM push_notifications_messages WHERE app_id = :app_id', array(':app_id' => $id));
$qCount = db_query('SELECT * FROM push_notifications_messages WHERE app_id = :app_id', array(':app_id' => $id))->rowCount();
$form['table'] = array(
'#theme' => 'table',
'#header' => array(t('Message'), t('Device'), t('Date')),
'#rows' => array(
foreach($query as $result) {
for($i = 1; $i <= $qCount; $i++) {
echo "'r" . $i . "'" . => array(
"'c1'" . => array(
'#type' => 'textfield',
'#title' => t('@message', array('@message' => $result['msg_message']))
),
"'c2'" . => array(
'#type' => 'textfield',
'#title' => t('@device', array('@device' => $result['msg_device']))
),
),
}
}
),
);
提前致谢!!
答案 0 :(得分:1)
只需从数组定义中提取foreach循环,然后像这样分配值:
<?php
$form['table'] = array(
'#theme' => 'table',
'#header' => array(t('Message'), t('Device'), t('Date')),
'#rows' => array(),
);
foreach($query as $result) {
for($i = 1; $i <= $qCount; $i++) {
$form['table']["#rows"]["'r$i'"] = array(
"'c1'" => array(
'#type' => 'textfield',
'#title' => t('@message', array('@message' => $result['msg_message']))
),
"'c2'" => array(
'#type' => 'textfield',
'#title' => t('@device', array('@device' => $result['msg_device']))
),
);
}
}
?>
答案 1 :(得分:0)
你不应该在drupal表单构建器代码中使用echo,foreach类型的PHP代码。在不发表任何评论的情况下,我想与您分享this。希望它能比你更好地帮助你。