Zend Form Несколько записей - PullRequest
       5

Zend Form Несколько записей

0 голосов
/ 29 сентября 2010

Я справляюсь с Zend_Form и могу создать форму для добавления / редактирования одной записи в базе данных, но сейчас я пытаюсь создать форму для редактирования нескольких записей на одной странице.Например, если бы у меня была таблица спортивных команд и другая таблица игроков, назначенных этим командам, я хотел бы иметь возможность щелкнуть по команде на моем сайте и иметь всех игроков в списке в виде строк с входными данными для редактирования их имен,дата рождения и т. д., с одной кнопкой отправки внизу, чтобы сохранить любые изменения.

Следует отметить, что на странице может быть измененное количество записей;это не установленная сумма.

Любые указатели / помощь будут очень признательны.

Спасибо.

1 Ответ

0 голосов
/ 04 октября 2010

Я использую код ниже, чтобы удалить несколько элементов из базы данных.

На странице индекса (список записей моей базы данных):

<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 . ')');
    }

Этот подход должен работать для обновления значений.

...