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:<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 :
mon probleme réside indirectement dans cloture_dossier.php :Code:
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); } }) }) });
Code:
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é
J'ai systématiquement une erreur 500 car j'utilise un plugin pour les acl :Code:
1
2
3
4
5 public function cloturerdossier ($id) { $data = array('id_etat' => '2'); $this->update( $data, 'id = ' . (int)$id ); }
<h3>Parametres passés:</h3>
<pre>array (
'controller' => 'cloture_dossier.php',
'action' => 'index',
'module' => 'default',
'id_dossier' => '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 ?