【问题标题】:Zend Form Multiple RecordsZend Form 多条记录
【发布时间】:2010-09-29 12:35:50
【问题描述】:

我开始掌握 Zend_Form 并且可以创建一个表单来添加/编辑单个数据库记录,但现在我正在尝试创建一个表单来编辑单个页面上的多个记录。例如,如果我有一个运动队表格,而另一个分配给他们球队的球员表格,我希望能够点击我网站上的一个球队,并将所有球员列为行,并输入编辑他们的名字,出生日期等,底部有一个提交按钮以保存任何更改。

需要注意的一点是,可以在页面上编辑的记录数量不定;这不是一个固定的数量。

任何指针/帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: zend-framework zend-form


    【解决方案1】:

    我使用下面的代码从数据库中删除多个项目。

    在索引页面上(我的数据库记录列表):

    <form method="post" action="<?php echo $this->baseUrl().'/admin/pages/deleteMultiple'; ?>">
        <td class="checkboxTable"><input name="remove[<?php echo $data[$row]->id; ?>]" type="checkbox" id="checkbox[]" value="<?php echo $data[$row]->id; ?>"/></td>
        <input class="deleteMultipleButtonBottom" name="deleteMultiple" type="submit" id="deleteMultiple" value="<?php echo $this->translate('Delete selected'); ?>">
    </form>
    

    用户看到一个确认页面:

      <form method="post">
            <input type="hidden" name="removeId" value="<?php echo implode($_POST['remove'], ','); ?>" />
            <input class="deleteYes" type="submit" name="deleteMultiple" value="Yes" />
            <input class="deleteNo" type="submit" name="deleteMultiple" value="No" />
        </form>
    

    而我的动作是这样的:

    if($this->getRequest()->isPost())
            {
                if($this->getRequest()->isPost('remove'))
                {
                    $this->view->pages = $this->pagesService->GetPages($this->getRequest()->getPost('remove'));
    
                    if($this->getRequest()->getPost('deleteMultiple') == 'Yes')
                    {
                        $this->pagesService->DeleteMultiplePages($this->getRequest()->getPost('removeId'), $this->view->user->username, $this->getRequest()->getPost('countedItems'));
                    }
                    elseif($this->getRequest()->getPost('deleteMultiple') == 'No')
                    {
                        $this->_helper->flashMessenger(array('message' => $this->view->translate('The pages were <u>not</u> deleted'), 'status' => 'notice'));
                        $this->_helper->redirectToIndex();
                    }
                }
            }   
    

    在我的服务页面中:

    public function DeleteMultiplePages($id)
        {
            $this->pages->delete('id IN (' . $id . ')');
        }
    

    这种方法应该适用于更新值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 2017-02-24
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多