2009-10-20 7 views
0

J'ai un contentPane avec un formulaire distant, j'essaye d'obtenir le formulaire à soumettre, et reste dans le volet, en affichant à nouveau le formulaire en cas d'erreur ou en signalant le succès. Je suis sûr que c'est facile, mais je suis perplexe, pas la première fois et pas la dernière, j'en suis sûr.Zend_Dojo_Form onSubmit

Formulaire de magasin:

class Services_Form_Store extends Zend_Dojo_Form { 
    protected $_actionUrl; 
    public function __construct($actionUrl = null, $options=null) 
    { 
     parent::__construct($options); 
     $this->setActionUrl($actionUrl); 
     $this->init(); 
    } 

    public function setActionUrl($actionUrl) { 
     $this->_actionUrl = $actionUrl; 
     return $this; 
    } 

    public function init() 
    { 
     $required = true; 

     $this->setMethod('post') 
      ->setAttrib('id', 'storeform') 
      ->setAttrib('name', 'storeform') 
      ->setAttrib('onSubmit', 'dojo.xhrGet(sub) return false;'); 

     $this->addElement('TextBox', 'location', array(
      'label'  => 'Location name :', 
    'required' => true, 
      'trim'  => true, 
      'propercase' => true) 
     ); 

     $submit = new Zend_Form_Element_Submit('submit'); 
    $submit->setLabel('save'); 
    $this->addElement($submit); 
    } 
} 

Mon Vue:

<script type="dojo/method" event="onSubmit"> 
var sub = { 
    url : "/storemamager/new", 
    load : function(data){ 
    dojo.byId('storeform').value = data; 
    }, 
    error : function(data){ 
    console.debug("error submitting data :" + data); 
    }, 
    timeout : 2000, 
    form : "storeform" 
} 
    </script> 
    <?php echo(empty($this->formResponse) ? '' : '<p class="errors">' . $this->formResponse . '</p>'); ?> 
    <?php echo $this->form; ?> 

assez nouveau à tout cela, donc mes excuses pour les lignes à wtf rapport.

Edit: le code était en désordre

Répondre

1

Barking le mauvais arbre. Un bouton avec événement onclick dans mon formulaire fait l'affaire.

$this->addElement('Button', 'submit', array(
     'label'  => 'Save', 
     'onclick' => 'dojo.xhrPost(
          { 
           url : "url", 
           timeout : 2000, 
           form : "form" 
          } 
         );' 
Questions connexes