1

簡単なフォームを使用して新しいドキュメント情報を送信しています。ユーザーが[保存して新しいドキュメント]ボタンを押して、複数のドキュメントを簡単に追加できるようにしたいと考えています。「保存して新規作成」ボタンを最初に押したときに機能するボタンをフォームに追加しようとしましたが、既存のフォームの上に別のフォームがポップアップ表示されますが、その後ボタンが機能しなくなります。おそらく、新しいものをスポーンするときに、前のものを適切に閉じていないためですか?

どうすればいいですか?
新しいdialogURL()を呼び出す前にcloseDialog()を使用してみましたが、明らかに機能しません...

(簡略化された)コードサンプルは次のとおりです。

class page_informa_documento extends Page {

  function init(){
  parent::init();
  $f=$this->add('Form');
  $f->setModel('Document');
  $f->addSubmit('Save');
  $f->addButton('Save and new document')->js('click',$f->js()->atk4_form('submitForm','otro'));


  if($f->isSubmitted() )
  {
      // save document info we just got here
      $doc->save();

    if ($f->isClicked('otro')) 

      $f->js()->univ()->dialogURL('New Document',$this->api->getDestinationURL('/informa/documento'))->execute();

    else  $f->js()->univ()->closeDialog()->execute();
  }
4

1 に答える 1

0

フォームデータが必要な場合は、複数の送信ボタンを追加する必要があります。

$a=$f->addSubmit('Save');
$b=$f->addSubmit('Save and Add More');
if($f->isSubmitted()){

    // save your document here

    if($f->isClicked($a)){
        $this->js()->univ()->location($this->api->url('index'))->execute();
        // go to index page, we are done
    }
    if($f->isClicked($b)){
        $this->js()->univ()->location($this->api->url()->execute();
        // stay on the same page, just reload
    }
}

これがデモです:http ://test-suite.agiletoolkit.org/?page = form

ソースはここから取得されます:https ://github.com/atk4/atk4-testsuite/blob/master/page/form.php#L16

于 2012-09-06T10:15:57.973 に答える