Bonjour à tous,
j'ai une liste de dossiers que j'affiche et je voulais y mettre un peu de jQuery pour cloturer un dossier.
en gros un simple click sur un cadenas qui effectue un update id_etat="2" where id_dossier = mon id récupéré .

Mon problème consite à faire ceci en MVC ...
voila comment j'ai procédé :

Dans ma vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<a href="#" class="cloture" title="<?php echo $this->escape( $dossier['id_dossier'] ); ?>"><img src="<?php echo $this->baseUrl(); ?>/images/cad1.png" alt="Ouvert" title="Cloturer ce Dossier " /></a>


l'image est bien la avec la bonne propriete.

Le click sur l'image déclenche ceci :

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
 
$(document).ready(function(){
    $('.cloture').click(
        function() {
        $.ajax({
            url : 'cloture_dossier.php',
            type: 'POST',
            data: 'id_dossier='+ $(this).attr('title'),
            dataType : 'json',
            success: function(data) {
                alert('Dossier transmis : ' + data);  // cela fonctionne
                },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(thrownError);
              }
        })
    })
});
mon probleme réside indirectement dans cloture_dossier.php :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<?php
$id_dossier=$_POST['id_dossier'];
 
// $sql=("UPDATE dossiers SET id_etat= 2 WHERE id=$id_dossier");
 
$dossiers = new Application_Model_DbTable_Dossiers();
$dossiers->cloturerdossier($id_dossier);  // Modele ligne 62


Dans mon modèle j'ai ajouté

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
    public function cloturerdossier ($id)
    {
    $data = array('id_etat' => '2');
        $this->update( $data, 'id = ' . (int)$id );
    }
J'ai systématiquement une erreur 500 car j'utilise un plugin pour les acl :
<h3>Parametres passés:</h3>
<pre>array (
'controller' =&gt; 'cloture_dossier.php',
'action' =&gt; 'index',
'module' =&gt; 'default',
'id_dossier' =&gt; '117',
) </pre>

hors dans mon fichier acl.ini je mets :
controller.action = liste des profils autorisés séparés par une virgule

si je ne mets rien, tout le monde y est autorisé, par exemple : index.index =

Dans mon cas il reconnait cloture_dossier.php comme controller mais ce n'en n'est pas un et plante lamentablement

Ai je loupé quelque chose ou c'est la logique globale qu'il faut revoir ?