как преобразовать строковое значение через JS в поле в Zend_Form - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь объединить значение из боковой панели в открытом Zend_Form.

Это работает в основной части, но не тогда, когда я сначала изменяю значение в текстовой области, а затем принимаю " textbaustein "из боковой панели. Тогда набор записей будет вновь извлечен из базы данных, поэтому дальнейшие внесенные изменения будут потеряны. Я понимаю, почему это не сработает, но мой вопрос, как это сделать правильно. Вероятно, я должен использовать JS? Но как это сделать?

Фрагмент editAction

public function editAction()
{
    $adapter = $this->authService->getAdapter();
    if(!$this->authService->hasIdentity())
    {
        return $this->redirect()->toRoute('index', ['action' => 'index']);
    }
    else {
        //          $user1= $this->authService->getIdentity();
        //          $rolle=$this->UserTable->getRole($user1);
        //          $loge = $this->UserTable->getLoge($user1);
        $id = $this->params()->fromRoute('id', 0);
        if (strstr($id,"-") == true){

            $analyseid =substr($id,0,strpos($id,"-"));
            $helper=substr($id,strlen($analyseid)+1,strlen($id));
        }
        else {
            $analyseid =$id;
            $helper=0;
        }

        if (($analyseid>= 0)) { 

            try {
                $va = $this->vaTable->getVertragsanalyseneu($analyseid);
            } catch (\Exception $e) {
                return $this->redirect()->toRoute('vertrag', ['action' => 'index']);
            }
            if ($helper>0) {  //text soll übernommen werden
                if (isset($va)){
                    $this->vaTable->saveVertragsanalyse($va);
                }
                $bausteintext= $this->baustein()->getBausteintext($helper);
                $va->besonderheiten = $va->besonderheiten . ' ' . $bausteintext;
                $this->vaTable->saveVertragsanalyse($va);
            }
            $old=(array) $va;
            $form = new VABesonderheitenForm(NULL, $this->db);
            $form->bind($va);
            $form->get('submit')->setAttribute('value', 'speichern');
            $request = $this->getRequest();
//            $viewData = ['id' => $analyseid, 'form' => $form, 'bausteine'=> $this->baustein()->getBausteine(1)];
            if (!$request->isPost()) {
                //return $viewData;
               return ['id' => $analyseid, 'form' => $form, 'bausteine'=> $this->baustein()->getBausteine(1)];
            }

А вот как это выглядит:

Screenshot

...