【发布时间】:2015-07-12 07:39:47
【问题描述】:
我想从视图模块中的表格中获取复选框,但我无法让它工作。这是表格:
<form action="" method="post">
<TABLE id="dt_basic" class="table table-striped table-bordered table-hover dataTable">
<THEAD>
<TR>
<TH></TH>
<TH>ID</TH>
<TH>Client</TH>
<TH>User</TH>
<TH>Role</TH>
<TH>Projects</TH>
</TR>
</THEAD>
<TBODY>
<?php
/* @var $item Admin\Model\User */
foreach ($this->users as $item) {
?>
<TR>
<TD class='admin'><input type="checkbox" name="users[<?php echo $item->id; ?>]" value=<?php echo $item->id; ?> checked/></TD>
<TD class='admin c'><?= $item->id ?></TD>
<TD class='admin'><?= $item->getClientObject() ?></TD>
<TD class='admin'>
<img src="<?= $item->getAvatarPath() ?>" alt="me" class="online avatar"/>
<a title='details'
href='/admin/user/detail/id/<?= $item->id ?>'><?= $item->name . " " . $item->surname ?> </a>
</TD>
<TD class='admin'><?= $item->getRoleObject() ?></TD>
<TD class='admin'>
<a title='projects' class='btn btn-default btn-sm'
href='/admin/user/project/id/<?= $item->id ?>'><i
class='fa fa-icon-fix fa-briefcase'></i></a>
<?
foreach ($this->projects[$item->id] as $i => $project) {
echo $project->getName();
if ($i != sizeof($this->projects[$item->id]) - 1)
echo " • ";
}
?>
</TD>
</TR>
<?php
}
?>
</TBODY>
</TABLE>
</form>
整个.phtml : http://pastebin.com/8paJZgjb
我想获取users[] 数组并在控制器中使用它的元素,但我找不到获取它的方法。到目前为止,这是我尝试过的:
if (!empty($_POST["users"])) {
foreach (($_POST["users"]) as $selectedUsers) {
$users = $this->getUserTable()->fetchAll(false, "id=" . $selectedUsers);
}
} else {
$this->cache->error = "Please choose at least one user.";
return $this->view;
}
全功能:http://pastebin.com/pE4afemx
...但显然它是空的。
var_dump 显示邮件表单中的元素,但没有用户的迹象:
array (size=2)
'subject' => string 'hello' (length=5)
'message' => string 'message' (length=7)
有什么建议吗?
【问题讨论】:
-
你应该使用
$this->getRequest()->getPost('users');,或者如果你使用的是zend表单,你应该使用$form->getValue('users');。 $_POST 应该可以工作...您是否尝试过像var_dump($_POST);这样的简单调试? -
我按照你说的做了,现在并没有说它是空的,但是它也没有将它们显示为 $_POSTS,很奇怪。是不是因为我没有把控制器作为表单的动作?
-
请编辑您的问题,以包含您在提交表单后从控制器获得的
var_dump($_POST);exit;的内容。空白操作不是问题。 -
@TimFountain 我按照你的要求做了
-
好的,如果您可以编辑您的问题以包含整个表单,这可能会有所帮助,因为问题不在您发布的代码中。您问题中的表单没有“主题”或“消息”字段,但它们就是您所得到的。
标签: php html forms zend-framework zend-framework2