I dont think "onFormSuccess" is valid.. i think it was changed to "onSuccess" but check the docs just incase
HTH Alex Mcauley http://www.thevacancymarket.com ----- Original Message ----- From: "Romain Dequidt" <[email protected]> To: "Prototype & script.aculo.us" <[email protected]> Sent: Wednesday, October 07, 2009 7:28 PM Subject: [Proto-Scripty] prototype.js from 1.5 from 1.6 in Zend Framework > > Hi, > > I'm trying to replace the Prototype JavaScript framework version (1.5) > with the 1.6.0.3 one into a PHP project using Zend framwork, Smarty > and Scriptaculus. > > I do a Ajax.Request according to the parameters from the > UserRegistrationForm. > > The response is sent using this helper method: > public function sendJson ($data) > { > $this->_helper->viewRenderer->setNoRender(); > > $this->getResponse()->setHeader('Content-type', 'application/json'); > echo Zend_Json::encode($data); > } > > So, I changed some lines to fit the Prototype JavaScript framework, > version 1.6.0.3 in the > onFormSuccess : function(transport) { > // var json = transport.responseText.evalJSON(true); // <= v 1.5 > var json = transport.responseJSON; > // var errors = $H(json.errors); // <= v 1.5 > var errors = json.errors; > if (errors.length > 0) { > this.form.down('.error').show(); > errors.each( function(pair) { > this.showError(pair.key, pair.value); > }.bind(this)); > } else { > this.form.submit(); > } > } > > But actually this code doesn't work since errors is an "Object" and > "length" property is undefined... (that's what i've seen in Firedebug) > > So I would like to know how I can process "errors" object to retrieve > the key/value pairs. > > "errors" object is managed by a "FormProcessor" object: > <?php" > abstract class FormProcessor > { > protected $_errors = array(); > protected $_vals = array(); > private $_sanitizeChain = null; > > public function __construct() > { > > } > > abstract function process(Zend_Controller_Request_Abstract > $request); > > public function sanitize($value) > { > if (!$this->_sanitizeChain instanceof Zend_Filter) { > $this->_sanitizeChain = new Zend_Filter(); > $this->_sanitizeChain->addFilter(new > Zend_Filter_StringTrim()) > ->addFilter(new > Zend_Filter_StripTags()); > } > > // filter out any line feeds / carriage returns > $ret = preg_replace('/[\r\n]+/', ' ', $value); > > // filter using the above chain > return $this->_sanitizeChain->filter($ret); > } > > public function addError($key, $val) > { > if (array_key_exists($key, $this->_errors)) { > if (!is_array($this->_errors[$key])) > $this->_errors[$key] = array($this->_errors > [$key]); > > $this->_errors[$key][] = $val; > } > else > $this->_errors[$key] = $val; > } > > public function getError($key) > { > if ($this->hasError($key)) > return $this->_errors[$key]; > > return null; > } > > public function getErrors() > { > return $this->_errors; > } > > public function hasError($key = null) > { > if (strlen($key) == 0) > return count($this->_errors) > 0; > > return array_key_exists($key, $this->_errors); > } > > public function __set($name, $value) > { > $this->_vals[$name] = $value; > } > > public function __get($name) > { > return array_key_exists($name, $this->_vals) ? $this->_vals > [$name] : null; > } > } > ?> > > thanks, > > Romain > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---
