Suite à mon dernier post et quelques recherches sur le Net, je me suis mis sous l'architecture MVC pour mon application.
Je souhaite y rajouter un système AJAX pour certaines parties, notamment pour les formulaires mais après 2 jours de recherches, je ne trouve rien de très concluant mise à part d'utiliser la méthode JSON pour envoyer et recevoir des données.
En fait je comprends pas comment envoyer correctement les données d'un formulaire depuis une requête AJAX à une action de mon contrôleur et comment réceptionner correctement ces même données dans l'action de mon contrôleur.
Je vous montre mon code JS :
Code : Tout sélectionner
<script type="text/javascript">
function sendForm() {
new Ajax.Request( '<?php echo $this->baseUrl(); ?>/Index/Auth/', {
method:'post',
asynchronous:true,
parameters:Form.serialize( $('login') ),
requestHeaders:{ Accept:'application/json' },
onSuccess:function( e ) {
alert( e.responseText.evalJSON() ) ;
}
} ) ;
}
</script>public function authAction() {
$translate = Zend_Registry::get( 'Translate' ) ;
if ( $this->_request->isXmlHttpRequest() ) {
if ( $this->_request->isPost() ) {
$username = $this->_request->getPost( 'username' ) ;
$password = $this->_request->getPost( 'password' ) ;
if ( empty( $username ) ) {
echo $translate->_( 'Veuillez saisir votre identifiant' ) ;
}
elseif ( empty( $password ) ) {
echo $translate->_( 'Veuillez saisir votre mot de passe' ) ;
}
else {
$dbAdapter = Zend_Registry::get( 'Db' ) ;
$authAdapter = new Zend_Auth_Adapter_DbTable( $dbAdapter ) ;
$authAdapter->setTableName( new TblMembers() )
->setIdentityColumn( 'username' )
->setCredentialColumn( 'password' )
->setCredentialTreatment( 'MD5(?)' )
->setIdentity( $username )
->setCredential( $password ) ;
$auth = Zend_Auth::getInstance() ;
$result = $auth->authenticate( $authAdapter ) ;
if ( $result->isValid() ) {
$data = $authAdapter->getResultRowObject( null, 'password' ) ;
$auth->getStorage()->write( $data ) ;
$this->_redirect( '/auth/' ) ;
} else {
echo $translate->_( 'Mauvais identifiant et/ou mot de passe' ) ;
}
}
}
}
}
Voilà, j'espère avoir été clair dans mes explications.Je vous remercie d'avance pour votre aide
P.S. : J'utilise WAMP pour mes tests local et quand j'envoie mon formulaire, Firebug me retourne une erreur "406 Not Acceptable" alors que je n'est pas installer de mod_security.