Je rencontre quelques soucis avec Zend_Json pour enregistrer mes données en base de donnée après un onChange sur un formulaire sans bouton submit.
Je m'explique, je souhaite mettre en place des formulaire via Zend_Form sans bouton submit, à chaque valeur entrer ou modifier, j'enregistre les nouvelle valeurs en base de donnée via JSON. (je n'y arrive pas.)

exemple de formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
<form id="toto" method="POST" action="index">           
                 <td class="center"><input id="id" style="width:20px; size="10" type="text" name="id" value="<?php echo $test->id ?>"/></td>
                 <td class="center"><input id="name" class="input" name="name" value="<?php echo $name->name; ?>"onChange="test()" /></td>
                </form>
exemple jquery
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function test(dataAjax)
{
   $.ajax({
        type: 'POST',
        url: '../index/index',
       data: dataAjax,
        dataType: "json",
        success : function(response)
        {
        //que faire pour enregistrer les valeurs, ou est-ce le controller ?
 
        }
    })
}
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

exemple de controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
 
public function indexAction()
    {
       $model = new Default_Model_DbTable_Save();
       $form = new Default_Form_Form();
 
      if (!$form->isValid($_POST)) 
       {
        $this->view->values = $form->getValues();
        $this->view->getHelper('formError')->setMessages($form->getMessages());
       }
       //debut recuereration json         
           if($this->_request->isXmlHttprequest())
        {
            $this->_helper->layout->disableLayout();
            $this->_helper->viewRenderer->setNoRender(true);
            $this->_helper->viewRenderer->setNeverRender(true);
 
            $params = $this->_request->getParams();
 
            if($form->isValid($_POST))
            {
                echo 'toto';
               $id = $form->getValue('id'); 
               $name = $form->getValue('name'); 
               if($this->getRequest()->isPost())
               {
                   if($form->isValid($this->getRequest()->getPost()))
                   {
 
                   }
               }
 
               if($model->edit($idMarque,$nameMarque)=== FALSE)
               {
                   throw new Exception('problem');
               }
 
 
            } 
            $this->_helper->json($modelMarque,
                                    array(
                                        'enableJsonExprFinder' => true
                                        ));
 
//comment faire pour enregistrer en base de donnée, je suis vraiment bloqué
 
 
        }

Merci d'avance de votre aide